Page 1 sur 1

Pb memoire variables

Publié : jeu. 24/févr./2005 21:19
par david
J'ai tapé le code suivant avec PureBasic :

If ReadFile(0, "eff.prefs")
While Eof(0) = 0
Nom1$ = ReadString()
Chemin1$ =ReadString()
Ptf1$ = ReadString()
Nom2$ = ReadString()
Chemin2$ =ReadString()
Ptf2$ = ReadString()
Nom3$ = ReadString()
Chemin3$ =ReadString()
Ptf3$ = ReadString()
Wend
CloseFile(0)
Else
MessageRequester("Message", "Le système n'a pas pu être paramétré...", #MB_ICONERROR)
End
EndIf


Mon fichier "Eff.prefs" est un fichier texte reprenant les informations a inculres dans mes variables.

Tout fonctionne très bien, mis à part qu'au delà de neuf variables plus rien ne va
Que faire pour pallier à ce pb ????

Publié : mer. 02/mars/2005 13:27
par brossden
Bonjour

Je ne vois pas où tu as un problème ?

J'ai fait un prog qui crée le fichier si celui la n'exite pas !

Code : Tout sélectionner

CreateFile(0, "eff.prefs")

WriteStringN("toto")
WriteStringN("c:\")
WriteStringN("1")
WriteStringN("tata")
WriteStringN("d:\")
WriteStringN("2")
WriteStringN("titi")
WriteStringN("f:\")
WriteStringN("3")
WriteStringN("tutu")
WriteStringN("g:\")
WriteStringN("4")
WriteStringN("tete")
WriteStringN("h:\")
WriteStringN("5")
WriteStringN("tyty")
WriteStringN("i:\")
WriteStringN("6")

CloseFile(0)
puis j'ai essayé de comprendre ce qui ne fonctionne pas avec deux possibilités

Code : Tout sélectionner

If ReadFile(0, "eff.prefs") 
  Debug "Cas 1"
  Debug " "

  While Eof(0) = 0 
    Nom1$ = ReadString()
    Chemin1$ =ReadString() 
    Ptf1$ = ReadString() 
    Nom2$ = ReadString() 
    Chemin2$ =ReadString() 
    Ptf2$ = ReadString() 
    Nom3$ = ReadString() 
    Chemin3$ =ReadString() 
    Ptf3$ = ReadString() 
    Debug Nom1$ + "   " + Chemin1$ + "   " + Ptf1$
    Debug Nom2$ + "   " + Chemin2$ + "   " + Ptf2$
    Debug Nom3$ + "   " + Chemin3$ + "   " + Ptf3$  
  Wend 

  CloseFile(0)

  ReadFile(0, "eff.prefs")

  Debug " "
  Debug "Cas 2"
  Debug" "

  While Eof(0) = 0 
    Nom1$ = ReadString() 
    Chemin1$ =ReadString() 
    Ptf1$ = ReadString() 
    Nom2$ = ReadString() 
    Chemin2$ =ReadString() 
    Ptf2$ = ReadString() 
    Nom3$ = ReadString() 
    Chemin3$ =ReadString() 
    Ptf3$ = ReadString() 
    Nom4$ = ReadString() 
    Chemin4$ =ReadString() 
    Ptf4$ = ReadString() 
    Nom5$ = ReadString() 
    Chemin5$ =ReadString() 
    Ptf5$ = ReadString() 
    Nom6$ = ReadString() 
    Chemin6$ =ReadString() 
    Ptf6$ = ReadString() 

    Debug Nom1$ + "   " + Chemin1$ + "   " + Ptf1$
    Debug Nom2$ + "   " + Chemin2$ + "   " + Ptf2$
    Debug Nom3$ + "   " + Chemin3$ + "   " + Ptf3$  
    Debug Nom4$ + "   " + Chemin4$ + "   " + Ptf4$
    Debug Nom5$ + "   " + Chemin5$ + "   " + Ptf5$
    Debug Nom6$ + "   " + Chemin6$ + "   " + Ptf6$  
    Wend 
  CloseFile(0)
  
Else 
  MessageRequester("Message", "Le système n'a pas pu être paramétré...", #MB_ICONERROR) 
  End 
EndIf 
Dans les deux cas tout semble bien fonctinner
si je suis passé à coté du problème, donne moi d'autre explications !

Publié : mer. 02/mars/2005 13:46
par Le Soldat Inconnu
le problème, je l'ai déjà dis, c'est cette boucle while eof(0)

car ton fichier de preférence se termine par une ligne vide donc on fait un tour de boucle supplémentaire pour lire celle-ci. du coup, ça écrase toutes les valeurs lues.

Il faut la supprimer