Bonjour à tous,
je dois écrire un programme en Mathematica.
voici ce que fait ce programme:
il ouvre un fichier texte. ce fichier contient des données sous forme de chaines de caractères.
il faut chercher une certaine ligne du fichier
par ex la ligne commençant par "cellule_a"
(ça j'arrive à le faire en utilisant la commande FindList)
cette ligne est de la forme: " cellule_a 4.2521(2) "
et il faut que j'extraie le nombre 4.2521 de cette ligne pour pouvoir ensuite le réutiliser dans des calculs...
et je n'y parviens pas: je ne sais pas comment utiliser les pattern ou autre chose qui me permettrais de le faire....
un grand merci à qui pourra m'aider: je désespère, surtout que je ne dispose pas de beaucoup de temps...
Rudy
mon e-mail: ***@caramail.com
Bonjour,
j'ai créé un fichier "d:\toto.txt" contenant :
cellule_a 4.2521(2)
cellule_a 6.2521(2)
toto
cellule_a 3.2521(2)
cellule_a 7.2521(2)
cellule_a 1.2521(2)
[/i]
Le fichier Mathematica permettant de lire les valeurs est le suivant :
In[1]:= SetDirectory["d:"]
Out[1]= "D:\\"
In[2]:= a=FindList["toto.txt","cellule_a"]
Out[2]= {"cellule_a 4.2521(2)","cellule_a 6.2521(2)","cellule_a 3.2521(2)","cellule_a 7.2521(2)","cellule_a 1.2521(2)"}
In[3]:= resu={};
In[4]:= For[i=1,i<=Length[a],i++,
b=StringToStream[a[[i]]];
SetStreamPosition[b,StringLength["cellule_a"]];
resu = Append[resu,Read[b ,Number]]
];
In[5]:= resu
Out[5]= {4.2521,6.2521,3.2521,7.2521,1.2521}
J'expère que ça t'aidera.
Bon courage.[/i]
l'algorithme que tu a écris,
je crois que tu a fait une erreur en le recopiant:
tu aurais dû écrire:
b=StringToStream[a[[ i]]]
et non pas:
b=StringToStream[a[]]
c'est bien ça?
en tout cas merci mille fois car ça marche!!!
Rudy
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :