Bonjour!
J'ai créer un compteur pour une petite apply perso'.
Mais à chaque fois que je relance mon programme, ce compteur se réinitialise à 0. =/
Comment empêcher sa (sans BDD)?
Merci d'avance! ^^
Bonjour!
J'ai créer un compteur pour une petite apply perso'.
Mais à chaque fois que je relance mon programme, ce compteur se réinitialise à 0. =/
Comment empêcher sa (sans BDD)?
Merci d'avance! ^^
en stockant la valeur dans le registre ou un fichier ini , xml etc ...
Ola merci, mais alors là je ne sais pas du tout comment faire! =/
Petite explication possible? =D
Pour le Ini,
dans ton programme, par exemple directement dans le DPR ou dans le OnCreate de ta MainForm, ou encore dans une section Initialize ...
tu fais
en fin, dans le DPR, dans le OnDestroy de ta MainForm, ou section Finalize
Code : Sélectionner tout - Visualiser dans une fenêtre à part MonCompteur := MonObjetIni.ReadInteger('Section', 'MonCompteur', 0);
Et je dirais même plus, mais risque de lenteur, à chaque incrémentation de ton Compteur, tu enregistre cette valeur ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MonObjetIni.WriteInteger('Section', 'MonCompteur', MonCompteur);
En base de Registre, euh, cela risque de la faire gonfler pour rien (pas de modif mais historisation des clés non ?)
en XML, juste parce que le XML c'est un format à la mode, le ini c'est bien suffisant, et l'un ou l'autre, n'assuront pas de robutesse de la donnée de toute façon ...
Merci beaucoup le troll, mais j'aimerais juste savoir à quoi correspond ce qui est entre parenthèses dans le ReadInteger : Section, MonCompteur (là c'est le nom de mon compteur j'imagine), et le 0???.
Et pour le nom de mon fichier .ini, comment dois-je le déclaré dans mes variables?
PS: Je l'ai mis dans la procédure OnCreate de ma MainForm (en fait il n'y en a qu'une :p).
Regarde l'Objet TIniFile, tout est expliqué dans l'aide
sinon tient, une fonction wrapper ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function ReadStringIni(Section, Ident, Default: String): String; var TmpIniFile: TIniFile; begin // Ecriture du fichier Ini TmpIniFile:= TIniFile.Create(gCurrentIniPath + SERVEUR_INI); try // Rubrique, Clé, Valeur Result := TmpIniFile.ReadString(Section, Ident, Default); finally TmpIniFile.Free(); end; end;
Si tu n'as jamais vu de fichier .ini , ils sont divisés en sections entre crochets et en variables. Tu peux les lire dans un éditeur de texte simple. Ils ont l'aspect suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 [section_1] ma_variable_1 = la_valeur_en_chiffres_ou_en_lettres_1 ... ma_variable_n = la_valeur_en_chiffres_ou_en_lettres_n ... [section_n] ma_variable_1 = la_valeur_en_chiffres_ou_en_lettres_1 ... ma_variable_n = la_valeur_en_chiffres_ou_en_lettres_n
L'accés à la valeur se fait par ReadString ou ReadInteger en précisant la section et la variable.
bon courage
M'ouarf merci beaucoup, mais après avoir regarder TOUS les objets dont je dispose, je me suis rendu compte que je n'ai pas l'objet TIniFile! =/
Comment faire? Existe-t'il un autre objet permettant de lier mon programme à un .Ini?
Dans l'unité IniFiles, non ?
Cette unité est distribuée avec toutes les éditions de Delphi. Tu devrais l'avoir.
Non je n'ai pas cette unité! =/
Vous allez me crier dessus... Mais j'ai Delphi 10 Lite. :p
Je me fait juste les dents pour l'instant alors rien de grave je pense! ^^
Mais bon du coup pas de IniFiles! =/
Un autre moyen possible?
Envoyé par CleeM
Ben gérer ton ini à la main, pardi, avec un TStringList et un peu d'imaginationEnvoyé par CleeM
Si tu ne veux pas te faire , regarde les éditons perso. (2005) et/ou Turbo (2006) de Delphi.
Sinon pour accèder aux ini, il y a les api windows ( GetProfileInt , ... )
http://msdn2.microsoft.com/en-us/library/ms724360.aspx
Merci beaucoup pour ces informations! ^^
PS: J'ai un peu de mal avec les API windows là, mais je vais chercher. ))
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager