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

Pascal Discussion :

Ecrire dans un fichier .txt


Sujet :

Pascal

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Points : 13
    Points
    13
    Par défaut Ecrire dans un fichier .txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    assign(rapport,'rapport.txt');
    write(rapport,numeroclient:5,nbcasquette:2,nbepingles:2);
    quelqun peut me dire l'erreur qu'il y a la dedans car c'est a la 2ième ligne quil a erreur?

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    Si mes souvenirs sont bons : la fontion write ne prends que 2 paramètres dans ce cas. Le premier est la référence du fichier et le second est la variable ou la liste des variables à écrire (et il ne faut pas de virgule pour les séparer). Dans l'exemple ci-dessous, je les concatène et les sépare par un espace.

    Déclaration de la variable rapport :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var rapport : text;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Assign(rapport,'rapport.txt');
    Write(rapport, numeroclient:5+' '+nbcasquette:2+' '+nbepingles:2);
    ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Assign(rapport,'rapport.txt');
    Write(rapport, numeroclient:5);
    Write(rapport, ' ');
    Write(rapport, nbcasquette:2);
    Write(rapport, ' ');
    Write(rapport, nbepingles:2);
    petite remarque : si tu écris dans un fichier texte pense à séparer les données écrites (par une tabulation -chr($09)- ou un retour à la ligne, writeln() fonctionne également pour les fichiers textes), comme ceci les données seront lisibles par un programme du genre NotPad.

  3. #3
    Membre confirmé
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Points : 589
    Points
    589
    Par défaut Re :
    Oula si tous le monde utilisais les fichier comme vous faite
    -ou est le reset ou est le close(f)
    Pour utiliser un fichier deja existant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var F:text;
     
    begin
    assign(f,'chemin du fichier');
    reset(f);
    Write(rapport, numeroclient:5+' '+nbcasquette:2+' '+nbepingles:2);
    close(f);
    Tien un lien ça pourra t'aider http://cyberzoide.developpez.com/info/turbo/chap10.php3
    Je te le dis et je le repete il y'a tout sur ce site avant de poster lis bien les tuto recherche dans les forums +Faq+Google ensuite poste sur le forum .....
    et vint le 20siècle et l'homme se mit à réflechir comme la machine auteur: diden138
    Langage: Pascal,OCaml,Delphi,c/c++.
    Langages web:Xhtml,Css,Php/Mysql,Javascript,Actionscript 2.0
    Plate forme:Windows XP Pro SP2./Red Hat 9.0/SUSE 10.2
    Config :Intel P4 3.2GHZ,2MO cach,512 RAM.
    Outils:Tp7,objective caml,Delphi 6 perso, C++builder 6,Visual C++ Express edition sous win,code-block sous linux(Ubuntu) .

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Oui en effet, j'ai oublié le reset(f) pour ouvrir le fichier et placer le pointeur au début du fichier. Néanmoins, le reset n'est valable que pour les fichers qui existent sinon une erreur est renvoyée.

    Citation Envoyé par diden138
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var F:text;
     
    begin
    assign(f,'chemin du fichier');
    reset(f);
    Write(rapport, numeroclient:5+' '+nbcasquette:2+' '+nbepingles:2);
    close(f);
    même si le pascal n'est pas "case sensitive", je voudrais apporter une petite correction :
    avec un f minuscule.
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Write(f, numeroclient:5+' '+nbcasquette:2+' '+nbepingles:2);
    dans ce cas et non rapport.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    numeroclient : string ;                 
    nbcasquette : integer ;                  
    nbepingles :  integer ; 
    assign(rapport,'rapport.txt');
    rewrite(rapport);
    writeln(rapport, numeroclient:5+' ',nbcasquette:2+,' ',+nbepingles:2);
    quand le programme arrive au writeln , ca stop car il a un erreur d'incompatibilité , comment régler cela?

  6. #6
    Membre confirmé
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Points : 589
    Points
    589
    Par défaut Re :
    Effectivement il y'a une incompatibilité les variables nbcasquette ,nbepingles sont de type integer alors que ton fichier est un fichier texte donc il ne peut contenir que des chaines de caractére pour remédier à cela tu doit transformer tes variables integer en chaine "transtypage"
    regarde du coté des fonction str et val dans la Faq
    et vint le 20siècle et l'homme se mit à réflechir comme la machine auteur: diden138
    Langage: Pascal,OCaml,Delphi,c/c++.
    Langages web:Xhtml,Css,Php/Mysql,Javascript,Actionscript 2.0
    Plate forme:Windows XP Pro SP2./Red Hat 9.0/SUSE 10.2
    Config :Intel P4 3.2GHZ,2MO cach,512 RAM.
    Outils:Tp7,objective caml,Delphi 6 perso, C++builder 6,Visual C++ Express edition sous win,code-block sous linux(Ubuntu) .

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    jessaie avec la variable str mais ca ne fontionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    nbcasquette : integer ;                 
    nbepingles :  integer ;
    a : string ;
    b : string ;
    str(nbcasquette:5:0:a);
    str(nbepingles:5:b);
    il me dise pas assez de paramètres originaux ? comment régler ca?

  8. #8
    Membre confirmé
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Points : 589
    Points
    589
    Par défaut Re :
    Tu a oublié la virgule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    str(nbcasquette:5:0,a);
    str(nbepingles:5,b);
    maintenant ça devrais marcher ...
    et vint le 20siècle et l'homme se mit à réflechir comme la machine auteur: diden138
    Langage: Pascal,OCaml,Delphi,c/c++.
    Langages web:Xhtml,Css,Php/Mysql,Javascript,Actionscript 2.0
    Plate forme:Windows XP Pro SP2./Red Hat 9.0/SUSE 10.2
    Config :Intel P4 3.2GHZ,2MO cach,512 RAM.
    Outils:Tp7,objective caml,Delphi 6 perso, C++builder 6,Visual C++ Express edition sous win,code-block sous linux(Ubuntu) .

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    ouais ca marche pour les str mais la pour écrire dans le fichier rapport.txt ca marche pas du tout:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    numeroclient : string ;
    clientz : integer ;
    e : integer ;
    assign(rapport,'rapport.txt');
    reset(rapport);
    val(numeroclient,clientz,e);
    writeln(rapport,clientz:5);
    moi je veux juste écrire le numero du client dans le fichier texte c'est tout

  10. #10
    Membre confirmé
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Points : 589
    Points
    589
    Par défaut Re :
    Je comprend pas numéroclient c'est une chaine de caractére laisse la comme elle est ,donc si je reprend ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    numeroclient : string ;
    assign(rapport,'rapport.txt');
    reset(rapport);
    writeln(rapport,numeroclient);
    et vint le 20siècle et l'homme se mit à réflechir comme la machine auteur: diden138
    Langage: Pascal,OCaml,Delphi,c/c++.
    Langages web:Xhtml,Css,Php/Mysql,Javascript,Actionscript 2.0
    Plate forme:Windows XP Pro SP2./Red Hat 9.0/SUSE 10.2
    Config :Intel P4 3.2GHZ,2MO cach,512 RAM.
    Outils:Tp7,objective caml,Delphi 6 perso, C++builder 6,Visual C++ Express edition sous win,code-block sous linux(Ubuntu) .

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    non ca me dit tout le temps une erreur lors'quil arrive pour l'écriture !! erreur 105 ?? je sais pas c koi mais jai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    writeln(rapport,numeroclient);
    peut etre write ??

  12. #12
    Membre confirmé
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Points : 589
    Points
    589
    Par défaut Re :
    Est ce que ton fichier existe sur le disque ou tu tente de le créer??si c'est la deuxiéme remplace reset par rewrite(rapport);
    Ps:l'erreur ne vient pas de writeln
    et vint le 20siècle et l'homme se mit à réflechir comme la machine auteur: diden138
    Langage: Pascal,OCaml,Delphi,c/c++.
    Langages web:Xhtml,Css,Php/Mysql,Javascript,Actionscript 2.0
    Plate forme:Windows XP Pro SP2./Red Hat 9.0/SUSE 10.2
    Config :Intel P4 3.2GHZ,2MO cach,512 RAM.
    Outils:Tp7,objective caml,Delphi 6 perso, C++builder 6,Visual C++ Express edition sous win,code-block sous linux(Ubuntu) .

  13. #13
    Membre confirmé
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Points : 589
    Points
    589
    Par défaut Re :
    D'aprés ton programme est ce que tu veux faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    numeroclient : string ;
    numero:integer;
    writeln('entrez le numero du client');
    readln(numero);
    str(numero,numerclient);
    assign(rapport,'rapport.txt');
    rewrite(rapport);
    writeln(rapport,numeroclient);
    close(f);
    essaye ça..
    et vint le 20siècle et l'homme se mit à réflechir comme la machine auteur: diden138
    Langage: Pascal,OCaml,Delphi,c/c++.
    Langages web:Xhtml,Css,Php/Mysql,Javascript,Actionscript 2.0
    Plate forme:Windows XP Pro SP2./Red Hat 9.0/SUSE 10.2
    Config :Intel P4 3.2GHZ,2MO cach,512 RAM.
    Outils:Tp7,objective caml,Delphi 6 perso, C++builder 6,Visual C++ Express edition sous win,code-block sous linux(Ubuntu) .

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    ca fonctionne mais sa l'écrit pas dans le fichier .txt biz ;\

  15. #15
    Membre confirmé
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Points : 589
    Points
    589
    Par défaut Re :
    chez moi le code marche normalement :
    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
     
    program fichier;
    var
    numeroclient : string ;
    numero:integer;
    rapport:text;
    begin
    writeln('entrez le numero du client');
    readln(numero);
    str(numero,numeroclient);
    assign(rapport,'rapport.txt');
    rewrite(rapport);
    writeln(rapport,numeroclient);
    close(rapport);
    end .
    et vint le 20siècle et l'homme se mit à réflechir comme la machine auteur: diden138
    Langage: Pascal,OCaml,Delphi,c/c++.
    Langages web:Xhtml,Css,Php/Mysql,Javascript,Actionscript 2.0
    Plate forme:Windows XP Pro SP2./Red Hat 9.0/SUSE 10.2
    Config :Intel P4 3.2GHZ,2MO cach,512 RAM.
    Outils:Tp7,objective caml,Delphi 6 perso, C++builder 6,Visual C++ Express edition sous win,code-block sous linux(Ubuntu) .

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    ca écris seulement lorsque le programme est terminé mais moi je veux que ca lécrire au fur et a mesure comment faire cela??

  17. #17
    Membre confirmé
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Points : 589
    Points
    589
    Par défaut Re :
    J'ai rien compris qu'est ce que tu veux faire???
    je t'ai donner assez d'element pour commencer à toi de faire le reste ..
    et vint le 20siècle et l'homme se mit à réflechir comme la machine auteur: diden138
    Langage: Pascal,OCaml,Delphi,c/c++.
    Langages web:Xhtml,Css,Php/Mysql,Javascript,Actionscript 2.0
    Plate forme:Windows XP Pro SP2./Red Hat 9.0/SUSE 10.2
    Config :Intel P4 3.2GHZ,2MO cach,512 RAM.
    Outils:Tp7,objective caml,Delphi 6 perso, C++builder 6,Visual C++ Express edition sous win,code-block sous linux(Ubuntu) .

  18. #18
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut
    Bonjour,

    ca écris seulement lorsque le programme est terminé mais moi je veux que ca lécrire au fur et a mesure comment faire cela??
    si je ne me trompe pas, le programme met dans une mémoire tampon et de temps en temps, (selon la taille du tampon), il le vide pour écrire sur le disque.

    avec l'instruction close, tu vides et écris sur le dique ce qui restait dans le tampon et ça ferme le fichier.
    Un bon exemple vaut mieux qu'une longue explication confuse...

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

Discussions similaires

  1. Ecrire dans un fichier txt
    Par El-Diablo- dans le forum C++Builder
    Réponses: 28
    Dernier message: 04/09/2007, 16h17
  2. comment ecrire dans un fichier txt avec WriteFile?
    Par Art19 dans le forum Langage
    Réponses: 13
    Dernier message: 04/07/2007, 15h50
  3. Ecrire dans un fichier txt en 4gl
    Par patriceguic dans le forum Informix
    Réponses: 2
    Dernier message: 07/05/2007, 20h44
  4. Ecrire dans un fichier .txt
    Par chabRRR dans le forum Langage
    Réponses: 3
    Dernier message: 13/03/2007, 19h30
  5. Ecrire dans un fichier txt sans en effacer le contenu
    Par cari dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/12/2005, 18h11

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