Page 1 sur 1

Ecriture fichier texte

Publié : jeu. 30/mars/2023 18:07
par MetalOS
Salut les gars,

J'ai besoin d'ajouter une ligne à un fichier texte à chaque lancement de mon programme. C'est bien comme ca qu'il faut faire ???

Code : Tout sélectionner

If CreateFile(1, "Fichier.txt") 
   FileSeek(1, Lof(1)) 
   WriteString(1, "Ligne à ajouter")
EndIf  
Le problème c'est que ca me réécrit sur la première ligne et pas sur la prochaine ligne. Portant Lof() et bien sensé indique le fin de ligne non ?

Re: Ecriture fichier texte

Publié : jeu. 30/mars/2023 18:55
par falsam
Comme ça c'est mieux pour écrire à la fin d'un fichier existant.

Code : Tout sélectionner

If OpenFile(1, "Fichier.txt", #PB_File_Append) 
   WriteString(1, "Ligne à ajouter")
EndIf 

Re: Ecriture fichier texte

Publié : jeu. 30/mars/2023 18:57
par Philippe_GEORGES
Il faut d'abord créer le fichier, puis ensuite ajouter des lignes.

Code : Tout sélectionner

; creation du fichier 
If CreateFile(1, "Fichier.txt") 
   WriteStringN(1, "Première ligne")
   CloseFile(1);
 EndIf
; ajout dans le fichier 

If OpenFile(1, "Fichier.txt") 
   FileSeek(1, Lof(1)) 
   WriteStringN(1, "Ligne à ajouter")
   CloseFile(1);
EndIf 
Voilà !!

Re: Ecriture fichier texte

Publié : jeu. 30/mars/2023 18:58
par falsam
Avec l'option #PB_File_Append dans les options d'ouverture d'un fichier, FileSeek est inutile.

Ne pas oublier non plus le flag #PB_Ascii ou #PB_UTF8 dans l'option d'écriture.

Re: Ecriture fichier texte

Publié : jeu. 30/mars/2023 19:23
par MetalOS
Au final ca fonctionne avec ce code. Quand je charge le fichier texte dans un ListViewGadget les lignes sont charger les unes après les autres.

Code : Tout sélectionner

If CreateFile(1, "Fichier.txt") 
   FileSeek(1, Lof(1)+1, #PB_Relative) 
   WriteString(1, "Ligne à ajouter")
EndIf  

Re: Ecriture fichier texte

Publié : jeu. 30/mars/2023 20:27
par Marc56
Il faut d'abord créer le fichier, puis ensuite ajouter des lignes.
Pas besoin; OpenFile le créé s'il n'existe pas. :wink:
OpenFile()
Ouvre un fichier en lecture et en écriture ou le crée s'il n'existe pas.

CreateFile()
Crée un fichier vide ou recrée une fichier vide s'il existe déjà.

ReadFile()
Ouvre un fichier pour des opérations de lecture seule.