Page 1 sur 1

Readfile/OpenFile

Publié : lun. 30/janv./2006 16:20
par david
j'utilise le code:
;****charge param.ini**************
If ReadFile(0, "Param.prefs")
While Eof(0) = 0
ligne1$ = ReadString()
ligne2$ = ReadString()
path1$ = ReadString()
path2$ = ReadString()
chemin$ = ReadString()
transparent$ = ReadString()
delay$ = ReadString()
taillex$ = ReadString()
tailley$ = ReadString()
posix$ = ReadString()
posiy$ = ReadString()
Wend
CloseFile(0)


pour charger quelques variables.
celles-ci seront modifiées dans mon programme
je veux les réenregistrer
j'ai essayé le code:

Procedure EcritInit()
OpenFile(0, "Param.prefs")
WriteStringN(ligne1$))
WriteStringN(ligne2$))
+....
CloseFile(0)
EndProcedure

mais ça ne fonctionne pas je ne sait pas d'où vient le pb....
pourant le fichier est bien refermé après lecture on pourrait donc le modifier en ecriture facilement
a moins que le WiteString soit mal utilisé?!!

Publié : lun. 30/janv./2006 16:45
par popstatic
je serais toi j'utiliserai la librairie Preferences:

Code : Tout sélectionner

General

Un fichier Preference contient des paramètres définis pour le programme par l'utilisateur. Il est stocké sur le disque et est chargé à chaque lancement de ce programme (comme les fichiers '.INI' sous Windows par exemple). PureBasic offre la possibilité de créer un fichier hiérarchisé de préférences facilement utilisable sur différentes plate-formes. Le format du fichier est en ASCII avec une préférence par ligne, utilisant une syntaxe 'MotClef=Valeur'. Des groupes peuvent être créés pour une lecture plus simple. 

Sommaire des commandes:

ClosePreferences
CreatePreferences
OpenPreferences
PreferenceComment
PreferenceGroup
ReadPreferenceFloat
ReadPreferenceLong
ReadPreferenceString
WritePreferenceFloat
WritePreferenceLong
WritePreferenceString

Publié : lun. 30/janv./2006 22:30
par Flype
Je serais toi, j'écouterais popstatic, mais sinon tu peux aussi le faire comme tu dis mais il faudrait au minimum que tu lises la doc : c'est CreateFile() pour sauver un fichier, pas OpenFile().

Re: Readfile/OpenFile

Publié : lun. 30/janv./2006 23:33
par Dorian
@Flype :
c'est CreateFile() pour sauver un fichier, pas OpenFile()
je ne te suis pas trop sur ta phrase. les 2 fonctions ouvrent un fichier en écriture seulement create... ecrase si le fichier éxiste alors que Open... charge un fichier.

@david
david a écrit : Procedure EcritInit()
OpenFile(0, "Param.prefs")
WriteStringN(ligne1$))
WriteStringN(ligne2$))
+....
CloseFile(0)
EndProcedure
A tu defini tes variables ligne1$ + .... en global car si tu ne la pas fais Pure considere ces variables comme vide.

Donc simple soit tu les met en global

Code : Tout sélectionner

Global ligne1$, ligne2$, ...
ou soit dans ta procedure il faut les passer en parametre

Code : Tout sélectionner

Procedure EcritInit(ligne1$, ligne2$, ...) 
  OpenFile(0, "Param.prefs")
  WriteStringN(ligne1$)) 
  WriteStringN(ligne2$)) 
+....
  CloseFile(0) 
EndProcedure
Voilà j'espere t'avoir aidé

Publié : mar. 31/janv./2006 0:10
par Flype
oui autant pour moi.

Code : Tout sélectionner

Syntaxe

WriteStringN(Texte$)

Description

Ecrit une chaîne de caractères dans le fichier en cours suivie du code 'Fin de Ligne'. Le fichier doit être accessible en écriture (pas ouvert par ReadFile() par exemple). 
je recommande quand meme CreateFile plutot que OpenFile pour créer un fichier de config.
Et le coup des globales, c'est surement çà...

Publié : mar. 31/janv./2006 18:59
par Dorian
Flype a écrit :je recommande quand meme CreateFile plutot que OpenFile pour créer un fichier de config.
là je suis d'accord avec toi. le must serai d'avoir une lib comme la lib Pref mais en pouvant modifier juste un élément et nom tout réécrire. Bien que ce ne soit pas bien compliqué à faire comme lib normalement, sa serai bien que ce pb soit résolu dans la v4 ^^

[EDIT]

Je viens de voir cette lib qui permet de changer une variable d'un fichier pref sans avoir à je recréer. J'ai pas encore testé : Lib UdaptePref

Publié : mar. 31/janv./2006 19:10
par Dr. Dri
D'autant plus que la méthode CreateFile vire les éventuels commentaires -> pas cool

Dri :(

Publié : mar. 31/janv./2006 19:20
par Dorian
Je vien de tester la lib Udaptepref de mon post precedent et sa marche nikel sous la v3.94. Sa evite d'avoir tout à coder ^^

Publié : mar. 31/janv./2006 22:28
par Droopy

Publié : mar. 31/janv./2006 22:40
par julien
Dorian a écrit :Je vien de tester la lib Udaptepref de mon post precedent et sa marche nikel sous la v3.94. Sa evite d'avoir tout à coder ^^
C'est fait pour ça :D
tu trouveras les dernière version sur :
http://purebasic.free.fr/