[Pas Bug] CreateFile

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

[Pas Bug] CreateFile

Message par SPH »

Salut,

je crois avoir trouvé un bug. Quand je crée un fichier avec CreateFile, pas de probleme.
Mais quand je réexecute le code, il devrait s'apercevoir que le fichier existe deja :
CreateFile(0, file$) ; Ouvre un fichier existant ou en crée un nouveau s'il n'existait pas
Hors, la, il ecrase mon fichier existant et recommence. Pourquoi ?

Code : Tout sélectionner

file$="c:/sph/pb/Test.txt"

If CreateFile(0, file$)    ; 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() 
    WriteString(0, "Une ligne.")
    WriteStringN(0, "... une autre ligne à la fin du fichier.")
    CloseFile(0)
  EndIf
  If ReadFile(0, file$)   ; 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
    Wend
    CloseFile(0)               ; Ferme le fichier précédemment ouvert
  Else
    MessageRequester("Information","Impossible d'ouvrir le fichier!")
  EndIf
Dernière modification par SPH le ven. 26/mai/2017 15:43, modifié 1 fois.

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [Bug] CreateFile

Message par Ar-S »

Tu as mal lu la doc
Si le fichier existe déjà, il sera remplacé par un fichier vide !
Pour ouvrir un fichier existant en lecture et en écriture, utilisez la fonction OpenFile()
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: [Bug] CreateFile

Message par SPH »

Pourtant, la doc dit : "CreateFile(0, file$) ; Ouvre un fichier existant ou en crée un nouveau s'il n'existait pas"

Mais merci :idea:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: [Pas Bug] CreateFile

Message par Marc56 »

@SPH:
La définition que tu donnes est issue de l'exemple donné sur la fonction pour la fonction ReadFile()
Effectivement, il y a une coquille ou un oubli depuis une ancienne version.

Code : Tout sélectionner

If CreateFile(0, "Test.txt")  ; Ouvre un fichier existant ou en crée un nouveau s'il n'existait pas
La page d'aide et l'exemple de CreateFile() donne quant à elle la bonne définition

Syntaxe:
Resultat = CreateFile(#Fichier, NomFichier$ [, Options])
Description:
Crée un fichier vide.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [Pas Bug] CreateFile

Message par Ar-S »

De toute façon tu as plus intérêt à utiliser OpenFile(). C'est lui qui va te permettre de créer OU de continuer à utiliser un fichier.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre