Lecture fichier texte ligne par ligne
Bonjour,
Je cherche à lire un fichier texte ligne par ligne pour récupérer les valeurs contenues dans ce fichier et effectuer des calculs avec.
Le problème n'est pas la lecture du fichier en soi mais la difficulté de gérer les cas où le fichier n'aurait pas le format attendu (typiquement nombres de valeurs par ligne différent ou caractères parasites dans le fichier).
Si on a un fichier de cette forme:
Code:
1 2 3 4
| 3.14 0 1.51 2.28
1 0.3 2.25 1.14
3.2 5.5 6.2 0.1
4.1 0 2.3 3.2 |
Pas de problème, on a le bon nombre de valeurs par ligne.
Par contre:
Code:
1 2
| 3.14 0 1.51 // manque une valeur à cette ligne
1 0.3 2.25 1.14 |
Ou
Code:
1 2
| 3.14 0 1.51 2.28
1 0.3 2.25 1.14 3.2 5.5 // deux valeurs en trop sur cette ligne |
Ou plus vicieux:
Code:
1 2 3 4
| 3.14 0 1.51 2.28
1 0.3 2.25 1.14
3.2 5.5 6.2 0.1
4.1 0 2.3 3.2 // j'ai ajouté un espace à la fin de cette ligne |
Je lis le fichier de cette manière:
Code:
1 2 3 4 5 6 7 8 9 10
| while(!(m_file.getStream().eof()))
{
// je lis une ligne du fichier et récupère les valeurs
initializeParameters();
// test des valeur lues
if(hasValideParameters())
{
// j'effectue mes calculs avec ces valeurs
}
} |
Ce code marche si j'ai le bon nombre de valeurs par ligne et si la dernière ligne ne se finit pas par un espace (sinon un tour de boucle supplémentaire avec des valeurs aléatoires).
Je souhaiterais donc vérifier de manière simple que le fichier d'entrée soit bien "formaté".
Je ne sais pas si c'est suffisemment clair.
Merci de votre aide.