Enregistrement fichier

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 :

Enregistrement fichier

Message par MetalOS »

Salut les gars,

J’aurais besoin d'un petit coup de main. je cherche à charger un fichier texte et afficher sont contenus dans un EditorGadget. Jusque là pas de problème seulement si j'ajoute du texte et que je veut l'enregistrer et recharger le contenu du fichier je n'y arrive pas. Mon code recharge bien le contenus du fichier mais ma multiplié par 2 le contenus. Voici le code de mon bouton pour enregistrer dans le fichier. Merci d'avance pour votre aide.

Code : Tout sélectionner

       Case #Window_Button_Valider
            If OpenFile(1, "Fichier.txt", #PB_File_Append|#PB_UTF8) 
                Resultat$ = GetGadgetText(#Window_Editor)
                 ClearGadgetItems(#Window_Editor)
                 WriteString(1, Resultat$)
                   MessageRequester("Information:", "Les modifications du fichier ont bien été effectuées.", #PB_MessageRequester_Ok )
                CloseFile(1)
           Else
              MessageRequester("Information","Impossible de modifier le fichier!")
           EndIf 
            
           If OpenFile(0, "Fichier.txt") 
             ClearGadgetItems(#Window_Editor)
                While Eof(0) = 0 
                 Texte$ = ReadString(0) 
                AddGadgetItem(#Window_Editor, -1, Texte$) 
              Wend 
               CloseFile(0) 
             Else 
               MessageRequester("Information","Impossible d'ouvrir le fichier!") 
           EndIf   
Bmld76
Messages : 116
Inscription : dim. 09/janv./2022 12:47

Re: Enregistrement fichier

Message par Bmld76 »

Bonjour,

Ton extrait de code ne permet pas de l'exécuter pour faire des tests et t'aider rapidement. Poste un code mettant ton problème en évidence.
_____________________________________________________________
IMAC 21.5 2012 Core I5 - 2.70 Ghz. 16 GB NVIDIA GeForce GT 640M 512 Mo. MacOs OCPL Sonoma 14.3
MacBook Air M1 - 8Go - Sonoma 14.5

PureBasic 6.11 MacOS
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Enregistrement fichier

Message par Ollivier »

Essaie SetGadgetText() directement. Process :

1) voir la taille du fichier
2) allouer un tampon de la taille du fichier
3) charger avec ReadData()
4) faire un PeekS() pour passer du tampon à une chaîne
5) libérer le tampon (FreeMemory())
6) mettre la chaîne dans l'editorGadget avec SetGadgetText()
7) (pourquoi pas) supprimer la chaîne
Avatar de l’utilisateur
Mindphazer
Messages : 694
Inscription : mer. 24/août/2005 10:42

Re: Enregistrement fichier

Message par Mindphazer »

Si tu ouvres ton fichier avec OpenFile en mode append, tu vas ajouter le contenu de ton Editor à la fin du fichier.
Donc si tu ré-ouvres le fichier, que tu ajoutes du texte dans ton Editor, et que tu le ré-enregistres, ben ça va s'ajouter à la fin de ton fichier
Donc tu auras tout en double
Puis en triple
Etc...

Ouvre ton fichier en écriture avec CreateFile, comme ça, ça le vide à charge fois
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Enregistrement fichier

Message par Ollivier »

Mindphazer a snipé. Dans le mille...
Avatar de l’utilisateur
MetalOS
Messages : 1509
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Enregistrement fichier

Message par MetalOS »

Merci de vos réponses les gars. Mindphazer à tous juste.
Répondre