Readfile/OpenFile

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

Readfile/OpenFile

Message 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é?!!
popstatic
Messages : 83
Inscription : lun. 20/sept./2004 18:21
Localisation : derriere toi fais gaffe!

Message 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
Asus bien? asus tres bien!
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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().
Image
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Re: Readfile/OpenFile

Message 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é
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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 çà...
Image
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message 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
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

D'autant plus que la méthode CreateFile vire les éventuels commentaires -> pas cool

Dri :(
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message 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 ^^
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message 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/
Répondre