Page 1 sur 1

Voir et éditer le contenu d'un fichier contenant des entiers

Publié : jeu. 29/juin/2017 16:49
par Kangax
Bonjour,
J'utilise le code de l'exemple donné dans l'aide pour faire un fichier texte avec juste 123456789 et ouf ça marche.

Code : Tout sélectionner

If CreateFile(0, "Test.txt")  ; Ouvre un fichier existant ou en crée un nouveau s'il n'existait pas
    FileSeek(0, Lof(0))         ; Place le pointeur à la fin du fichier en utilisant le résultat de Lof() 
    WriteInteger(0,123456789)
    CloseFile(0)
  EndIf
  If ReadFile(0, "Test.txt")  ; Si le fichier peut être lu , on continue...
    While Eof(0) = 0          ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File') 
      Debug ReadInteger(0)    ; Affiche ligne par ligne le contenu du fichier
    Wend
    CloseFile(0)              ; Ferme le fichier précédemment ouvert
  Else
    MessageRequester("Information","Impossible d'ouvrir le fichier!")
  EndIf

J'ai bien 123456789 dans la fenêtre de debug.
Par contre, ni avec le notepad ni avec Excel je n'arrive à ouvrir mon Test.txt et voir mon magnifique 123456789 (le fichier s'ouvre mais j'ai des hiéroglyphes).
Mon besoin final serait de remplir mon fichier Test.txt avec PB et des tas de valeurs autres que 123456789 et de pouvoir les reprendre un peu à la main dans Excel ou autre avant de les relire dans PB.
Merci d'avance pour vos retours.

Re: Voir et éditer le contenu d'un fichier contenant des ent

Publié : jeu. 29/juin/2017 17:18
par djes
Tu as créé un fichier binaire, alors que ce que tu veux, c'est créer un fichier textuel. Regarde plutôt les commandes WriteString() et ReadString() dans l'aide.

En gros, un fichier binaire contient des données telles qu'elles sont utilisées nativement par les ordinateurs : des bits, qu'on interprétera selon les besoins en octets, mots (binaires), flottants, bref, tous les «types» reconnus, de façon linéaire, bits après bits. On utilise certaines commandes pour ceux-là.

Un fichier textuel (texte, ASCII, plusieurs noms existent) contient également des données binaires mais qu'on interprétera systématiquement sous forme de texte. Le contenu sera en ASCII ou en Unicode, et le fichier contiendra certains codes spéciaux pour le formatage, afin de faciliter la vie du programmeur. Par exemple, écrire un texte dans un fichier peut intégrer un retour à la ligne, grâce à un ou deux caractères ajoutés de façon transparente.

Pour bien comprendre les fichiers, il est utile d'avoir un programme appelé visualiseur hexadécimal, qui permet d'afficher sous forme brute le contenu de n'importe quel fichier. Tu vois ainsi d'un côté la position, le contenu sous forme ascii (texte), et enfin le contenu sous forme de nombres.

Re: Voir et éditer le contenu d'un fichier contenant des ent

Publié : jeu. 29/juin/2017 17:22
par Fig
En reprenant ton code ça donnerait ça...

Code : Tout sélectionner

If CreateFile(0, "Test.txt")  ; Ouvre un fichier existant ou en crée un nouveau s'il n'existait pas
    WriteStringN(Str(123456789)) ;écrit le nombre sous forme d'une chaine de caractère lisible avec notepad.
    WriteStringN("deuxieme ligne") ;écrit une chaine de caratère
    CloseFile(0)
  EndIf
  If ReadFile(0, "Test.txt")  ; Si le fichier peut être lu , on continue...
    While Eof(0) = 0          ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File') 
      Debug ReadString(0)    ; Affiche ligne par ligne le contenu du fichier sous forme de chaine de caratère. pour récupérer un nombre tu peux utiliser val()
    Wend
    CloseFile(0)              ; Ferme le fichier précédemment ouvert
  Else
    MessageRequester("Information","Impossible d'ouvrir le fichier!")
  EndIf

Re: Voir et éditer le contenu d'un fichier contenant des ent

Publié : jeu. 29/juin/2017 18:20
par Kangax
Super ça marche, j'ai juste rajouté le "0," manquant en premier paramètre des WritestringN. Et c'est parfait.
Merci à tous les deux.