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 :

Sauvegarder les changements


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 54
    Points : 56
    Points
    56
    Par défaut Sauvegarder les changements
    Bonjour,

    J'explique mon problème :
    - J'ai un projet Delphi qui contient un Memo.
    - Il existe un .exe de ce projet qui permet de l'exécuter.
    - Quand j'exécute le programme il y a écrit 'bonjour' dans le Memo.
    - Je peux modifier le texte et mettre 'au revoir' à la place mais si je quitte le programme et que je le relance il y aura à nouveau marqué 'bonjour' dans le Memo.

    Je voudrais pouvoir sauvegarder le texte que j'entre depuis l'exécution.
    En clair je veux modifier la valeur par défaut du Memo.
    Comment faire ?

    - Je précise que j'ai accès au code du programme, je n'ai pas que l'exécution.
    - Je ne veux pas avoir à sauvegarder les changements dans un fichier texte pour ensuite les relire à l'exécution du programme, je voudrais donner l'ordre au programme (avec une ligne de code) de modifier la valeur par défaut 'bonjour' lorsqu'on modifie le Memo depuis l'exécution.


    Merci.

  2. #2
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    744
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 744
    Points : 500
    Points
    500
    Par défaut
    salut

    Ouverture du fichier (memo) quand tu lances ton exe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure TForm1.FormShow(Sender: TObject);
    begin
         if fileExists('Fichier.txt') then
         memo1.Lines.LoadFromFile('Fichier.txt');
    end;
    Sauvegarde du fichier (memo) quand tu fermes ton exe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
        memo1.Lines.savetoFile('Fichier.txt');
    end;
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 125
    Points
    15 125
    Par défaut
    Citation Envoyé par petitcoucou31 Voir le message
    salut

    Ouverture du fichier (memo) quand tu lances ton exe
    Sauvegarde du fichier (memo) quand tu fermes ton exe
    ? ? ?
    Je ne veux pas avoir à sauvegarder les changements dans un fichier texte pour ensuite les relire à l'exécution du programme
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 54
    Points : 56
    Points
    56
    Par défaut
    Tiens c'est marrant ça.........
    Ah nan........ en fait c'est exactement ce que je voulais éviter.
    Je viens de me rendre compte que Fichier.txt était créé dans Delphi/Projects si on a Delphi et sur un autre PC ça crée Fichier.txt dans le dossier où se trouve le .exe.
    J'ai précisé que je ne voulais pas avoir à créer un fichier texte pour ensuite le relire.

    Si je ne prends QUE l'exécutable alors le programme s'ouvre avec par exemple 'bonjour' dans le Memo. Donc cela veut dire que la valeur 'bonjour' est stockée dans le .exe.
    Et bien c'est dans le .exe que je veut modifier la valeur.... avec une ligne de code pas à la main.

    Si possible.
    Merci.

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 125
    Points
    15 125
    Par défaut
    « stockée dans l'exe », donc à moins de jouer avec un fichier ressources (voir la FAQ) inclus à la compil, et avec tout un code de la mort qui tue pour aller modifier les ressources de l'exe en run-time, je vois pas de solution, ou alors lire/écrire dans la base de registre.
    Pourquoi pas de .txt ? Pas envie de laisser de traces ?...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Ce que tu veux faire d'après la description que tu en donnes est impossible, car on ne peut pas modifier un exécutable après qu'il ait été compilé, le Pascal Objet n'étant pas un langage interprété.

    Comme le dit Jipété, on peut contourner le problème par modification des ressources de l'exécutable par lui-même. Hum ! Impossible dans certains cas (exécutable non accessible à l'utilisateur courant en écriture, par exemple), possible sous certaines conditions, mais inhabituel, et inusité. Car la façon de faire habituelle d'un logiciel, c'est de sauvegarder ses données dans des fichiers... si si, j'vous jure !

    Si un problème de confidentialité se pose, il suffit d'utiliser une unité de cryptage des données, on en trouve à la pelle sur le net. De toute façon, stocker les données dans des ressources de l'exécutable poserait le même problème, il existe des tas d'éditeurs de ressources, fut un temps il y en avait même un dans les exemples livrés avec Delphi.

    Et sinon, pour la position du fichier, ben il suffit de donner un chemin complet à la procédure SaveToFile, de préférence dans "Mes documents".

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 54
    Points : 56
    Points
    56
    Par défaut
    Oui, je voudrais un programme entièrement contenu dans le .exe. C'est pour un petit programme alors je trouvais ça trop de déborder avec un fichier texte.

    Ouais, c'est vrai que ça va faire un peu complexe pour pas grand chose. Enfin en même temps c'est ce que j'étais venu cherché ici. Voir s'il existait une méthode simple mais ça ne semble pas être le cas.

    Et pour écrire dans le registre étant donné que je veux le faire circuler mon petit programme ce n'est peut être pas une bonne idée.
    Ca va ressembler à un virus.
    Mais sinon ça ressemble à quoi l'écriture dans le registre ? On peut se créer une place qui ne perturbe pas le fonctionnement du PC ?

  8. #8
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 125
    Points
    15 125
    Par défaut
    Citation Envoyé par Beho Double Voir le message
    Mais sinon ça ressemble à quoi l'écriture dans le registre ? On peut se créer une place qui ne perturbe pas le fonctionnement du PC ?
    HKCU\Software\Ton_nom\Ton_appli c'est fait pour ça.
    Vas donc y jeter un oeil sur ta machine, tu verras comment les autres font, des plus grands aux plus petits.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 54
    Points : 56
    Points
    56
    Par défaut
    Ok merci, je vais voir tout ça.

  10. #10
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    744
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 744
    Points : 500
    Points
    500
    Par défaut
    re

    bon oui j'avais un doute avec les explications de ton 1er post et j'avais pas donc rien compris mais j'avais lu cela quand même !
    Je voudrais pouvoir sauvegarder le texte que j'entre depuis l'exécution.
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

  11. #11
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Les clefs de la base de registre sont locales au poste de travail, donc ça ne résout rien si le problème est de déplacer les données, puisque du coup c'est carrément impossible ! Avec un fichier au moins, on pourrait envisager de déplacer l'exécutable avec...

    Beho Double, il faut que tu nous dises exactement ce que tu veux faire et pourquoi cette contrainte, parce que si tu n'es pas en train de t'accrocher à une erreur de conception fondamentale... tu veux faire quoi exactement ?

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 54
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par CapJack Voir le message
    tu veux faire quoi exactement ?
    Trop long à expliquer et inutile puisque le problème est résolu en ce qui me concerne.

    Citation Envoyé par CapJack Voir le message
    Beho Double, il faut que tu nous dises exactement ce que tu veux faire et pourquoi cette contrainte, parce que si tu n'es pas en train de t'accrocher à une erreur de conception fondamentale...
    Mais tout à fait, l'erreur fondamentale étant de vouloir modifier un .exe en cours d'exécution. Il fallait juste que je visualise ça. Je suis venu ici pour voir si je n'avais vraiment pas d'autres choix que de faire un fichier texte, c'est tout.

    Et concernant le registre je voulais juste me renseigner, au final je vais utiliser un fichier texte pour sauvegarder les données. Ca me semble être le plus simple.
    Voilà.
    Merci bien.

Discussions similaires

  1. Sauvegarder les changements des valeurs datatable
    Par stephane92400 dans le forum JSF
    Réponses: 3
    Dernier message: 14/08/2007, 19h05
  2. Sauvegarder les données dans un fichier CSV
    Par beb30 dans le forum MFC
    Réponses: 5
    Dernier message: 08/03/2006, 13h06
  3. [CSS] Probleme dans les changements de couleurs
    Par caneman dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 30/07/2005, 18h43
  4. les changements du protocol ipv4 ----> ipv6
    Par m-unix dans le forum Développement
    Réponses: 1
    Dernier message: 26/10/2004, 19h58
  5. Comment sauvegarder les messages de Outlook express ?
    Par tarbala dans le forum Outlook Express / Windows Mail
    Réponses: 5
    Dernier message: 06/08/2004, 17h31

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