Bonjour,
Voici un fichier txt qui contient les lignes suivantes organisées en plusieurs blocks (3 blocks dans l'exemple):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <objects> <object CastShadows="yes" ReceiveShadows="yes" file="noPDB/Cryo_70S.3ds" name="70S_ribosome_0" parent="root" visible="true"> <position x="-932.390112" y="465.456642" z="-113.6953240"/> <rotation w="-0.168567" x="-0.821863" y="0.131280" z="-0.3853420"/> <scale x="1.000000" y="1.000000" z="1.000000"/> </object> <object CastShadows="yes" ReceiveShadows="yes" file="noPDB/Cryo_70S.3ds" name="70S_ribosome_1" parent="root" visible="true"> <position x="-191.334869" y="-815.207902" z="659.0063650"/> <rotation w="-0.990832" x="-0.622205" y="-0.533263" z="0.8630410"/> <scale x="1.000000" y="1.000000" z="1.000000"/> </object> <object CastShadows="yes" ReceiveShadows="yes" file="noPDB/Cryo_70S.3ds" name="70S_ribosome_2" parent="root" visible="true"> <position x="854.322695" y="645.500598" z="-764.8095280"/> <rotation w="0.830886" x="0.836896" y="-0.454449" z="0.7615380"/> <scale x="1.000000" y="1.000000" z="1.000000"/>
Je souhaiterai extraire de chaque bloc les 3 valeurs position x, y et z, les 4 valeurs correspondant à rotation w, x, y et z, et la chaîne de caractères correspondant à name= (ici il faut donc extraire 70S_ribosome_0, 1 et 2).
Ensuite, je souhaite placer ces valeurs dans une matrice qui contient autant de lignes que de blocks et contenant 8 colonnes : la colonne 1 contient le nom, la colonne 2 contient la position x, etc... jusqu'à la colonne 8 qui contient la rotation z.
Cela donnera :
J'ai lu pas mal de post sur le sujet mais la logique de textscan m'échappe toujours. Grand merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 70S_ribosome_0 -932.390112 465.456642 -113.6953240 -0.168567...-0.3853420 70S_ribosome_1 -191.334869... 0.8630410 70S_ribosome_3 854.322695... 0.7615380
Partager