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 des données de configuration


Sujet :

Delphi

  1. #1
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut Sauvegarder des données de configuration
    Voila mon probleme :
    J'ai un form avec dessus 24 Edit.
    Ces edit représentent des valeurs utilisées par le programme pour son fonctionnement. L'user a bien entendu la possibilité de les modifier mais en règle générale il ne les changera qu'assez rarement.
    Pour le moment quand je ferme mon programme toutes ces valeurs "disparaissent" et lorsque je rouvre mon programme je dois réencoder les 24 valeurs.
    Ce que je voudrais ces que ces 24 valeurs soient sauvées dans un petit fichier et rechargées dans les Edit quand le programme est lancé.
    Au début j'avais pensé utilisé une BD mais ca ne me semble pas tres bien vu que j'aurai qu'un rec, je me suis dit qu'il y avait surement moyen de mettre ces valeurs dans un petit fichier genre INI, mais je ne sais pas du tout comment faire.
    Y a t'il quelque part un tuto sur ce genre de chose ?.
    Quelqu'un a t'il un exemple ou une explication ?
    Quelqu'un a t'il une autre idée ?
    Merci.

  2. #2
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut
    Le plus simple, regarde la classe TStringList, tu peux stocker dedans tes 24 valeurs (une par ligne) et la classe propose des méthodes de chargement / écriture sur fichier. Elle peut même fonctionner comme un INI avec des couples clé=valeur.
    C'est le plus simple qu'on puisse faire.
    Pour le nom du fichier je te conseille l'astuce suivante : tu prends le nom de l'application et tu changes son extension en .ini, comme ça le fichier de config se trouve toujours avec l'application et porte le même nom.
    (utilisation de ChangeFileExt et de Application.ExeName)

  3. #3
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    Ton idee est pas mal mais en me promenant dans les tutos j'ai vu un truc qui a l'air sympas parceque ca me permetrait de pouvoir modifier mes données de manière externe à mon programme, c'est EXCELL.
    Je me suis dit que ca pourrait être bien de créer un fichier Excell qui contiendrait dans des cellules différentes les valeurs de chacun de mes Edit, de cette manière je pourrais même créer des mises à jour de ce fichier sur un autre PC et les envoyer par la suite au PC qui utilise mon programme.
    Mon souci c'est que je ne vois pas dans les tuto comment faire (si c'est possible) pour récupérer des données dans les cellules de Excell et si possible sans ouvrir Excell.
    S'il faut vraiment ouvrir Excell ce n'est pas grave vu que mon PRG ne doit lire ce fichier qu'une fois quand on le lance je pourrais me permettre de faire.
    Lancement du programme
    ouverture Excell
    Lecture des valeurs des cellules.
    Fermeture Excell.

    Qu'en pense tu ?
    Sais tu ou je pourrais avoir des infos pour faire ca et même si possible des exemples.
    Merci.

  4. #4
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    Pour finir et pour ceux que ce intéresse j'ai fait ca sur base des tutos :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    procedure TForm4.Button3Click(Sender: TObject);
    begin
    MonClasseur:=ExcelApplication1.Workbooks.Open('C:\Program Files\Gestionix\delphi.xls',False,False,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,0);
    MaFeuille:=MonClasseur.Worksheets[1] as _worksheet;
    Edit1.Text:=(MaFeuille.Cells.Item[1,1].Value);
    Edit2.Text:=(MaFeuille.Cells.Item[2,1].Value);
    Edit3.Text:=(MaFeuille.Cells.Item[3,1].Value);
    Edit4.Text:=(MaFeuille.Cells.Item[4,1].Value);
    Edit5.Text:=(MaFeuille.Cells.Item[5,1].Value);
    Edit6.Text:=(MaFeuille.Cells.Item[6,1].Value);
    Edit7.Text:=(MaFeuille.Cells.Item[7,1].Value);
    Edit8.Text:=(MaFeuille.Cells.Item[8,1].Value);
    Edit9.Text:=(MaFeuille.Cells.Item[9,1].Value);
    Edit10.Text:=(MaFeuille.Cells.Item[10,1].Value);
    Edit11.Text:=(MaFeuille.Cells.Item[11,1].Value);
    Edit12.Text:=(MaFeuille.Cells.Item[12,1].Value);
    Edit13.Text:=(MaFeuille.Cells.Item[13,1].Value);
    Edit14.Text:=(MaFeuille.Cells.Item[14,1].Value);
    Edit15.Text:=(MaFeuille.Cells.Item[15,1].Value);
    Edit16.Text:=(MaFeuille.Cells.Item[16,1].Value);
    Edit17.Text:=(MaFeuille.Cells.Item[17,1].Value);
    Edit18.Text:=(MaFeuille.Cells.Item[18,1].Value);
    Edit19.Text:=(MaFeuille.Cells.Item[19,1].Value);
    Edit20.Text:=(MaFeuille.Cells.Item[20,1].Value);
    end;
    Et de cette manière je peux modifier de manière externe mes donnees.

  5. #5
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    question facilité et rapidité, ta dernière solution est un peu lourde et nécessite impérativement la présence de ms excel installé sur le poste où tourne ton application. tandis que la solution que t'as proposée Merlin est on ne peut plus simple et tu peux aussi modifier les valeurs avec le Bloc Notes

  6. #6
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut
    Citation Envoyé par puce_84
    Qu'en pense tu ?
    tu veux que je sois franc ? :-)
    ... C'est la pire des solution que j'ai jamais vue :-)

    Sans rire, faire de l'Ole automation (qui ne marche pas une fois sur deux même s'il y a excel sur le poste client...) pour de simples paramètres c'est tordu. En plus la feuille Excel peut être bricolée par l'utilisateur ce qui plantera ton appli par exemple...

    Non, soit tu veux faire un truc simple, et tu prends le TStringList dont le fichier sera modifiable par Notepad. Soit tu veux faire quelque chose de plus sophistiqué et tu créés dans ton appli un écran de paramétrage... mais là tu vois qu'on tombe sur un pb logique : c'est déjà un écran de paramètres que tu sauvegardes... pourquoi faire deux fois la même chose :-)

    Le principe d'économie doit toujours être appliqué: faire ce qui est nécessaire et suffisant, jamais plus

  7. #7
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 017
    Points : 308
    Points
    308
    Par défaut
    Ok je vais essayer de trouver des infos sur la manière que tu propose alors parceque le gros avantage de ma solution c'est qu'elle est bien expliquée dans un tuto alors que le composant dont tu parles pour trouver des infos c'est galère et je ne suis qu'un petit bricoleur pas un pro de la progra.

  8. #8
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Il y a aussi le TIniFile. C'est un des composants les plus simples qui soit
    Il suffit que tu t'amuses avec 2 mn pour en voir les méthodes et ça suffit

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Comment sauvegarder des données ?
    Par Aspic dans le forum VB.NET
    Réponses: 14
    Dernier message: 15/07/2007, 15h47
  2. Stratégie de sauvegarde des données
    Par Filippo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/11/2006, 18h51
  3. [Debutant] Sauvegarder des données
    Par ArHacKnIdE dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 16/11/2006, 20h00
  4. [SQL Server Management Express] Sauvegarde des données
    Par basnifo dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 02/06/2006, 09h49
  5. sauvegarde des données des tables
    Par tomm dans le forum Bases de données
    Réponses: 18
    Dernier message: 27/04/2004, 21h29

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