IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Comment ne pas réinitialiser mon compteur à chaque redémarrage?


Sujet :

Delphi

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Par défaut Comment ne pas réinitialiser mon compteur à chaque redémarrage?
    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! ^^

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 586
    Billets dans le blog
    65
    Par défaut
    en stockant la valeur dans le registre ou un fichier ini , xml etc ...

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Par défaut
    Ola merci, mais alors là je ne sais pas du tout comment faire! =/

    Petite explication possible? =D

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 076
    Par défaut
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonCompteur := MonObjetIni.ReadInteger('Section', 'MonCompteur', 0);
    en fin, dans le DPR, dans le OnDestroy de ta MainForm, ou section Finalize
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonObjetIni.WriteInteger('Section', 'MonCompteur', MonCompteur);
    Et je dirais même plus, mais risque de lenteur, à chaque incrémentation de ton Compteur, tu enregistre cette valeur ...

    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 ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Par défaut
    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).

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 076
    Par défaut
    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;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre chevronné Avatar de archonte
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 343
    Par défaut
    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

  8. #8
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Par défaut
    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?

  9. #9
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Dans l'unité IniFiles, non ?
    Cette unité est distribuée avec toutes les éditions de Delphi. Tu devrais l'avoir.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  10. #10
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Par défaut
    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?

  11. #11
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Citation Envoyé par CleeM
    Vous allez me crier dessus... Mais j'ai Delphi 10 Lite. :p

    Citation Envoyé par CleeM
    Un autre moyen possible?
    Ben gérer ton ini à la main, pardi, avec un TStringList et un peu d'imagination
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  12. #12
    Membre éclairé
    Avatar de gb_68
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 232
    Par défaut
    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

  13. #13
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Par défaut
    Merci beaucoup pour ces informations! ^^

    PS: J'ai un peu de mal avec les API windows là, mais je vais chercher. ))

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/04/2009, 20h47
  2. comment voir la valeur de mon compteur?
    Par NessaVi dans le forum Débuter
    Réponses: 6
    Dernier message: 02/02/2009, 22h09
  3. Réponses: 11
    Dernier message: 09/04/2008, 15h09
  4. Réponses: 4
    Dernier message: 09/05/2007, 14h41
  5. Comment ne pas imprimer mon menu, l'entete et le pied de pag
    Par cedre22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 03/03/2006, 09h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo