Bonjour à tous,

Je programme actuellement en c# .net (framework 2) et j'ai un problème pour lire des fichiers ascii.

Je demande votre aide, mais je tiens à préciser que je veux que mon fichier reste un fichier ascii.

Le fichier que je manipule est constitué de la façon suivante :
n1 n2 n3 n4 ... n5 (où les nj sont des float)

Afin d'écrire dans ce fichier, j'utilise le procédé suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
System.IO.StreamWriter strEcriture = new System.IO.StreamWriter(FichierDeSauvegarde);
strEcriture.WriteLine("{0} {1} {2} {3}",n1,n2,n3,n4);
Voilà cela fonctionne mais je souhaiterais lire ce même fichier de la même manière.
En c++, on pourrait faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
fscanf("%d %d %d %d",&n1,&n2,&n3,&n4);
Là en c# .net pour lire cette ligne de fichier, je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
string s = str.ReadLine();
n1 = Convert.ToSingle(s.Substring(0, s.IndexOf(" ")));
s = s.Substring(s.IndexOf(" ") + 1);
n2 = Convert.ToSingle(s.Substring(0, s.IndexOf(" ")));
s = s.Substring(s.IndexOf(" ") + 1);
n3 = Convert.ToSingle(s.Substring(0, s.IndexOf(" ")));
s = s.Substring(s.IndexOf(" ") + 1);
n4 = Convert.ToSingle(s.Substring(0, s.IndexOf(" ")));
Comme ça je lis une première valeur en recherchant le premier espace trouvé, ensuit je tronque cette première valeur et je réaffecte s ; puis je lis la deuxième valeur et ainsi de suite ...


N'y aurait-il pas un moyen plus simple de faire cette opération de lecture un peu lourde alors que je sais qu'en c/c++ il est possible de faire plus simple.

Merci d'avance à tous

et @bientôt