Lecture et écriture d'un fichier texte avec Octave
Au cours de ce tutoriel, je vais vous guider pas à pas dans la lecture et l'écriture d'un fichier texte en utilisant Octave.
Création et écriture dans un nouveau fichier
Pour initier un nouveau fichier, faites appel à la fonction fopen(), en spécifiant le nom du fichier ainsi que le mode d'accès en écriture "w".
Par exemple :
>> MyFile=fopen("test2.txt", "w");
Poursuivez en inscrivant deux lignes dans ce fichier grâce à la fonction fprintf()
>> fprintf(MyFile, "1 record \n");
>> fprintf(MyFile, "2 record \n");
Il est également envisageable d'utiliser la fonction fputs() pour réaliser cette opération
>> fputs(MyFile, "1 record \n");
>> fputs(MyFile, "2 record \n");
Le résultat obtenu reste identique dans les deux cas.
Note importante : Il est essentiel d'ajouter le symbole de nouvelle ligne \n à la fin de chaque chaîne pour assurer une bonne structuration du texte. Sans cela, la prochaine instruction printf() poursuivra l'écriture sur la même ligne.
Une fois votre écriture finalisée, n'oubliez pas de fermer le fichier à l'aide de la fonction fclose()
>> fclose(MyFile);
Procédure de lecture d'un fichier
Pour entamer la lecture d'un fichier texte, sollicitez la fonction fopen() en mentionnant le nom du fichier et le mode d'accès en lecture "r".
Associez ensuite le fichier à une variable, par exemple MyFile
>> MyFile=fopen("test2.txt", "r");
Rappelez-vous que ce fichier renferme deux lignes distinctes.
Pour extraire une ligne du fichier, utilisez la commande fgetl()
>> fgetl(MyFile)
Cette commande vous dévoilera le contenu de la première ligne.
ans = 1 record
Pour accéder à la seconde ligne, réitérez simplement l'utilisation de la commande fgetl()
>> fgetl(MyFile)
Vous obtiendrez ainsi le contenu de la seconde et ultime ligne du fichier.
ans = 2 record
Si vous invoquez de nouveau la commande fgetl(), elle renverra -1, signifiant que vous avez atteint la fin du fichier.
>> fgetl(MyFile)
ans = -1
À la fin de votre lecture, veillez à bien fermer le fichier.
>> fclose(MyFile);
Lecture du fichier via une boucle
Il est également possible de parcourir le contenu du fichier en utilisant une structure de boucle, évitant ainsi de solliciter fgetl() à chaque étape
MyFile=fopen("test4.txt", "r");
eof=0;
while eof==0
rec =fgetl(MyFile)
if (rec==-1) eof=1; endif
end
fclose(MyFile)
Ajout de lignes à un fichier préexistant
Si vous souhaitez enrichir un fichier déjà existant, ouvrez-le en mode ajout en recourant à la fonction fopen() avec le mode d'accès 'a'.
Ainsi, pour accéder au fichier "test2.txt", qui contient déjà deux lignes
>> MyFile=fopen("test2.txt", "a");
Ajoutez ensuite la nouvelle ligne souhaitée via la fonction fprintf() ou fputs().
>> fprintf(MyFile, "3 record \n");
Après avoir ajouté toutes les lignes nécessaires, clôturez le fichier en écriture grâce à la fonction fclose()
>> fclose(MyFile);
Votre fichier compte désormais trois lignes distinctes.
Modes d'accès aux fichiers
Outre les modes d'accès en lecture ('r') et en écriture ('w'), d'autres modes sont à votre disposition :
'r' = ouverture du fichier en mode lecture
'w' = création d'un nouveau fichier en mode écriture
'a' = ajout de lignes à la fin d'un fichier existant
'r+' = ouverture du fichier en modes lecture et écriture
'w+' = création d'un nouveau fichier en modes lecture et écriture
'a+' = ouverture du fichier en modes lecture et écriture, en se positionnant à la fin
Grâce à ce tutoriel, vous maîtrisez désormais les bases de la lecture et de l'écriture d'un fichier texte sous Octave.