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

Lazarus Pascal Discussion :

[Lazarus] Ecriture dans un fichier sous Linux


Sujet :

Lazarus Pascal

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 25
    Points
    25
    Par défaut [Lazarus] Ecriture dans un fichier sous Linux
    Bonjour,

    Je ne sais pas si je suis dans la bonne rubrique, donc si un modérateur peut modifier si erreur!

    Je souhaite crée une interface graphique d'un logiciel camfrogserver pour configurer les parametres necessaire au bon fonctionnement de celui-ci, qui nativement se configure à la main dans des fichiers de type fichier.conf.sample
    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    adultsonly=off
    audioonlyroom=off
    commandsenabled=on
    deafroom=off
    defaultbantime=3
    disablehyperlinks=on
    disabletalk=off
    logcommands=0
    maxconnectionsacceptable=50
    maxlinebreaks=10
    motdpresent=off
    nobotsallowed=off
    Donc, je souhaiterais, soit par le biais d'une coche, ou l'appuis d'un button, passer un paramettre on qui par defaut est à off

    Par exemple, motdpresent=off , puis des que j'appuis sur un boutton, le OFF ce transforme en ON.
    C'est possible sachant que je developpe avec lazarus et que ce fichier se trouve dans /etc/camfrogserverd/fichier.conf.sample ??

    Merci beaucoup pour vos conseils qui je suis sûr me permetteras d'evoluer...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par load.exe Voir le message
    Bonjour,
    [...]
    Merci beaucoup pour vos conseils qui je suis sûr me permetteras d'evoluer...
    Bonjour,

    Evoluer, oui, mais à partir d'ou ? Telle est la question ;-)

    Quelques conseils en vrac :
    - vérifier au debut que l'utilisateur est bien root (ou sudoer),
    - Faire une interface comportant TOUS les paramétres possibles dans le fichier,
    - Faire (ou au moins proposer ... ) une sauvegarde de l'ancien fichiers de conf,
    - Bien penser à récréer le nouveau fichier sans l'extension ".sample"?

    Bon courage

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    - vérifier au debut que l'utilisateur est bien root (ou sudoer)
    Une logiciel comportant une interface graphique peut toujours s'executer en root, du moins, j'ai toujours réussi...c'est pas un problème.

    - Faire une interface comportant TOUS les paramétres possibles dans le fichier
    c'est ce dont j'avais l'intention de faire, mais le problème, c'est que je ne trouve pas de source permettant de le faire.
    d'apres mes recherches, il faut que je read le fichier ligne par ligne pour modifier la ligne voulu.
    Mais le problème, c'est que ça se fait avec seek pour les modifications.

    - Faire (ou au moins proposer ... ) une sauvegarde de l'ancien fichiers de conf
    Oui, ça j'y avais penser naturellement...

    --Ce dont je cherche, c'est juste une petite ligne de code qui me permet de modifier une ligne voulu dans un fichier qui se trouve dans un repertoire.
    Ensuite, je me debrouillerais.
    C'est ça qui me pose problème pour le moment
    Merci

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par load.exe Voir le message
    Bonjour,
    Une logiciel comportant une interface graphique peut toujours s'executer en root, du moins, j'ai toujours réussi...c'est pas un problème.
    Certes, mais s'agissant d'un fichier de conf, il faudra à priori avoir des droits pour le modifier ...
    Citation Envoyé par load.exe Voir le message
    mes recherches, il faut que je read le fichier ligne par ligne pour modifier la ligne voulu.
    Mais le problème, c'est que ça se fait avec seek pour les modifications.
    Ah, personellement, j'aurais recréé le fichier completement, lorsque l'uilisateur sauvegarde ses modifs.

    --Ce dont je cherche, c'est juste une petite ligne de code qui me permet de modifier une ligne voulu dans un fichier qui se trouve dans un repertoire.
    Ensuite, je me debrouillerais.
    C'est ça qui me pose problème pour le moment
    Merci[/QUOTE]

    Pour le code, j'en ai pas, mais je vais tester voir si j'arrive à quelque chose ;-)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par talapoga Voir le message
    Pour le code, j'en ai pas, mais je vais tester voir si j'arrive à quelque chose ;-)
    M'ouais ... il me semblait aussi....
    Seek s'adresse à des eléments de taille fixe, donc il n'est pas adapté pour cet usage.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    re

    Ah, personellement, j'aurais recréé le fichier completement, lorsque l'uilisateur sauvegarde ses modifs
    Oui, c'est envisagable.
    Mais quand le fichier va se recréer, est-ce qu'il va bien ecraser le fichier precedant de facon a ce que l'ancienne config soit bien effacer sans confirmation ?

    Certes, mais s'agissant d'un fichier de conf, il faudra à priori avoir des droits pour le modifier
    Oui, car le fichier se trouve dans le repertoire etc, et qu'a la base, seul root à le droit de modifier les fichier de config, mais c'est pas un problème, je pense que si l'utilisateur lance le nom du programme dans la console en root, alors le prog agiras en tant que root...

    Merci pour ton aide

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par load.exe Voir le message
    re
    Oui, c'est envisagable.
    Mais quand le fichier va se recréer, est-ce qu'il va bien ecraser le fichier precedant de facon a ce que l'ancienne config soit bien effacer sans confirmation
    Merci pour ton aide
    Re,
    Personnelement je pense qu'il faut prendre les devant et l'éffacer soi même, juste avant de le recréer. En fait, le renommer pour en faire un backup suffirais ;-)

  8. #8
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    re

    Personnelement je pense qu'il faut prendre les devant et l'éffacer soi même, juste avant de le recréer. En fait, le renommer pour en faire un backup suffirais ;-)
    Bon, je pense que je pourrai toute fois inclure une ligne de code qui pourrais effacer ou renomer le fichier via le programme developper.

    Mais sur le net, j'ai trouver une source qui permet d'ecrire dans un fichier.txt ,cependant, le fichier que je souhaite alors crée puis éditer doit porter fichier.conf.sample.
    ne risque t-il pas d'y avoir conflit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        * procedure X(Sender: TObject);
        * var
        * //on crée une variable Textfile
        * fichier: textfile;
        * begin
        * assignfile(fichier ,'nom_du_fichier.txt');
        * Reset(fichier); //Si vous voulez réouvrir un fichier sans effacer le contenu, ou bien
        * //Rewrite(fichier); si vous voulez ecraser le fichier
        *
        * Write(fichier,'ce kon veu écrire'); //ajoute un mot dans le fichier
        * WriteLn(fichier,'ce kon veu encore écrire'); //ajoute une ligne au fichier
        *
        * closefile(fichier); //ferme le fichier
        * end;
    Est-ce que je m'y prendrais bien comme cela ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par load.exe

    [CODE
    * Write(fichier,'ce kon veu écrire'); //ajoute un mot dans le fichier
    * WriteLn(fichier,'ce kon veu encore écrire'); //ajoute une ligne au fichier
    [/CODE]

    Est-ce que je m'y prendrais bien comme cela ?
    Je ne garderais que la seconde ligne, ave 'ce kon veut écrire' créé à la main en concaténant le nom du paramétre, un "=" et la valeur de ce paramétre.

    Par contre, en général les fichiers en .conf.sample sont des fichiers examples qu'il renommer en .conf avant de les utiliser ...

  10. #10
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    re

    Bon, j'ai tester sous delphi (windows)
    cela fonctionne, tres grand pas pour moi
    En revanche, j'écris un texte avec boutton 1, ca fonctionne.
    Mais avec le boutton 2, il m'efface ma premiere ligne pour la remplacer par celle du boutton 2
    Donc, j'en revient toujours a une seul string

    Je vois que sur le net, il propose append pour a chaque fois ecrire a la ligne suivante, mais la compile me met erreur.
    Enfin, pour le moment je teste sous delphi, peut-etre que sous lazarus, cela fonctionne, je ne sais pas.
    Tu as une petite idée.

    En tous ca merci beaucoup, j'avance

  11. #11
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    Re

    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
    procedure TForm1.Button1Click(Sender: TObject);
     var T:TextFile;
    begin
      AssignFile(T, 'c:\yann.conf.sample');
         Rewrite(T);
            Write(T, 'premiere ligne');
     
             CloseFile(T);
     
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
     
      var T:TextFile;
    begin
      AssignFile(T, 'c:\yann.conf.sample');
            Append(T);
    write(T,'deuxieme ligne');
     
             CloseFile(T);
    Le problème, c'est qu'il me met deuxieme ligne cote à cote.
    Ce qu'il me faudrais, c'est qu'il me met deuxieme ligne en dessous de la premiere.
    C'est possible ça ?
    Merci et excusez moi pour le double post, je ne pouvais plus réediter

    merci

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par load.exe Voir le message
    Je vois que sur le net, il propose append pour a chaque fois ecrire a la ligne suivante, mais la compile me met erreur.
    [...]
    En tous ca merci beaucoup, j'avance
    C'est bizarre que ca ne marche pas. Logiquement il ne devrait pas y avoir d'erreur ... Il dit quoi, au juste ?

  13. #13
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    C'est bizarre que ca ne marche pas. Logiquement il ne devrait pas y avoir d'erreur ... Il dit quoi, au juste ?
    C'est bon, excuse moi, je m'y était mal pris, ça fonctionne.

    mais le problème, c'est qu'il me réecrit à coté de la premiere string crée.
    Parce que en faite, je souhaiterais si possiblle, recréer un bouttons, et qu'a l'appuis de ce boutton, il réecris une string, mais en dessous de la premiere ligne.

    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
    procedure TForm1.Button1Click(Sender: TObject);
    var T:TextFile;
    begin
    AssignFile(T, 'c:\yann.conf.sample');
    Rewrite(T);
    Write(T, 'premiere ligne');
     
    CloseFile(T);
     
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
     
    var T:TextFile;
    begin
    AssignFile(T, 'c:\yann.conf.sample');
    Append(T);
    write(T,'deuxieme ligne');
     
    CloseFile(T);
    Mais avec ce code, il me fait cela dans le fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    premiere lignedeuxieme ligne
    Alors que logiquement ce devrais etre
    Merci

  14. #14
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Hio,

    Relis la doc, et regarde bien ce que font Write et WriteLn.
    Si les cons volaient, il ferait nuit à midi.

  15. #15
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par droggo Voir le message
    Hio,

    Relis la doc, et regarde bien ce que font Write et WriteLn.
    Bonjour droggo

    Oui, je suis d'accord droggo , mais sur une seul procedure, j'arrive a ecrire à la suite.
    Mais sur 2 ou 3 procedures, cela ne fonctionne pas.
    Cela m'ecris à la suite sur la même ligne
    Je vais encore retourner voir la doc...
    Dur Dur la prog, je penser pas que c'était aussi hard, mais c'est passionnant comme même

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par load.exe Voir le message
    Bonjour droggo

    Oui, je suis d'accord droggo , mais sur une seul procedure, j'arrive a ecrire à la suite.
    Mais sur 2 ou 3 procedures, cela ne fonctionne pas.
    Cela m'ecris à la suite sur la même ligne
    Je vais encore retourner voir la doc...
    Dur Dur la prog, je penser pas que c'était aussi hard, mais c'est passionnant comme même
    Non, non, ca marche très bien avec Writeln au lieu de Write, le premier rajoute un saut de ligne ....

  17. #17
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par talapoga Voir le message
    Non, non, ca marche très bien avec Writeln au lieu de Write, le premier rajoute un saut de ligne ....
    re,

    Oui, ca fonctionne sur une instruction, mais sur la deuxieme instruction, je veut faire la meme chose.
    Vous comprenez ce que je veut faire ?
    Un bouton = une ligne
    deuxieme bouton =deuxieme ligne à la suite de la premiere.
    merci.
    Vais me coucher pour ce soir.
    a demain

  18. #18
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Gio,

    Je ne vois plus trop ce que tu veux faire vraiment, explique-toi un peu mieux: que veux-tu dire précisément par
    Un bouton = une ligne
    deuxieme bouton =deuxieme ligne à la suite de la premiere.
    c'est sans doute clair pour toi, mais imagine que nous ne sommes pas dans ta tête.
    Si les cons volaient, il ferait nuit à midi.

  19. #19
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    Re bonjour,

    Imagine une form et que sur cette form tu y places 2 boutons.
    Donc, bouton1 insère une ligne
    Et lorsque je clique sur le bouton 2 qui, lui, se trouve par exemple à coté du bouton 1, inscrit une autre ligne en dessous de la première
    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
    procedure TForm1.Button1Click(Sender: TObject); //bouton 1
     var T:TextFile;
    begin
      AssignFile(T, 'c:\yann.conf.sample');
         Rewrite(T);
            Write(T, 'premiere');
     
             CloseFile(T);
     
    end;
     
    procedure TForm1.Button2Click(Sender: TObject); //boutton 2
     
      var T:TextFile;
    begin
      AssignFile(T, 'c:\yann.conf.sample');
            Append(T);
    writeLn(T,'deuxieme');
     
             CloseFile(T);
    Bon, avec ce code, le bouton2 insère une ligne, mais il l'insère à côté de la première.
    Ce que j'essaie de faire, c'est que lorsque je clique sur le bouton 2, il me l'insère en dessous de la première.
    Tu comprends ?
    En fait, là avec mon code actuel posté ci-dessus, dans mon fichier, cela apparaît comme ceci :
    premieredeuxieme
    Alors que normalement, il devrait apparaître comme cela :
    premiere
    deuxieme
    Voilà, j'espère avoir été assez clair .

    Merci beaucoup pour ta patience.
    Il me reste plus que cette affaire pour classer mon post résolu

  20. #20
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Gio,

    Alors, la réponse t'a déjà été donnée : WriteLn.
    Si les cons volaient, il ferait nuit à midi.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/10/2011, 17h14
  2. Ecriture dans un fichier sous condition
    Par boulette85 dans le forum Langage
    Réponses: 5
    Dernier message: 16/06/2007, 14h56
  3. Réponses: 5
    Dernier message: 05/06/2007, 00h41
  4. Ecriture dans un fichier sous Oracle
    Par 18Marie dans le forum Oracle
    Réponses: 4
    Dernier message: 06/03/2007, 17h02
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

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