Ecriture fichier texte

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
MetalOS
Messages : 1509
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Ecriture fichier texte

Message 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 ?
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Ecriture fichier texte

Message 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 
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Philippe_GEORGES
Messages : 140
Inscription : mer. 28/janv./2009 13:28

Re: Ecriture fichier texte

Message 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à !!
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
georges.informatique@gmail.com
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Ecriture fichier texte

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
MetalOS
Messages : 1509
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Ecriture fichier texte

Message 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  
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Ecriture fichier texte

Message 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.
Répondre