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

Langage Pascal Discussion :

Lecture et écriture sur un fichier txt


Sujet :

Langage Pascal

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Lecture et écriture sur un fichier txt
    Bonjour tout le monde,

    J'ai écrit le programme ci-dessous et à quand je l'execute il me lit le fichier txt mais quant à l'écriture il me crée le fichier mais ne m'écrit pas mes données dedans:

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    program listechainee;
     
    const
         path='C:\pascal\tp2\';
    Var
         f1, f2 :text;
         tab : array [1..1000] of integer;
         n, i : integer;
     
    begin
     
    assign (f1, path+'listechainee.txt');
    assign (f2, path+'sortie1.txt');
    reset (f1);
    rewrite(f2);
     
    i:=0;
     
    while not eof(f1) do
     
    begin
    i:= i+1;
    read (f1, tab[i]);
    write ('ligne', i:3, tab[i]:15);
    readln;
    end;
     
    begin
    n:=i;
    for i:=1 to n do
    write(f2, tab[i]);
    end;
     
    close (f1);
    close (f2);
    End.
    Avec mes remerciements pour votre aide.

  2. #2
    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
    Die,

    Pense à utiliser les balises code pour montrer ton code
    (Il n'y a pas à chercher longtemps dans d'autres sujets pour apprendre ce que c'est, et comment s'en servir)

    Sinon, je ne vois rien de problématique dans ton programme, à part que
    serait avantageusement remplacé par
    (sous réserve que ton fichier contienne une valeur par ligne)


    et surtout que
    soit remplacé par
    sinon les données seront écrites les unes à la suite des autres, sans séparation, ce qui entraînera l'impossibilité de les relire correctement plus tard.

    D'autre part, sécuriser le programme pour les entrées/sorties est une très bonne habitude à prendre (que se passe-t-il si le fichier f1 n'existe pas ? et s'il existe, si une des données n'est pas convertible en entier ? et pour le fichier f2, que se passe-t-il si on ne peut pas le créer ? et s'il est créé, si on ne peut pas écrire dedans [par exemple, plus de place sur le disque] ?
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    je te remercie pour ta réponse si rapide
    mais les données ne sont pas toujours saisies au niveau du fichier de sortie

  4. #4
    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
    Fie,
    Citation Envoyé par freemanqc Voir le message
    je te remercie pour ta réponse si rapide
    mais les données ne sont pas toujours saisies au niveau du fichier de sortie
    Je ne vois pas vraiment ce que tu veux dire ?
    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    je ne vois pas de probleme dans ton code. Seulement, il faut créer le fichier listechainée.txt (tu dois y mettre des valeur pour que i soit different de 0) avant d' executer le programme.

    si tu as crée un fichier vide, ton i vaudra 0 et tu n' as donc rien à mettre dans le fichier sortie.

    Je te conseil de faire des procedure pour les differentes operations.

    si probleme persiste, explique nous plus en detail ce que tu as fait et ce que tu veux que je programme fasse.

  6. #6
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour
    @freemanqc : tu es sûr que tu ouvres ton fichier sortie1.txt une fois que le code à fini de s'executer? parce que si tu l'ouvre en cours d'excecution sans qu'il ait fini d'écrire dans le ficher tu n'auras rien dans le fichier
    Comme le dit darrylsite
    1-Verifes que ton fichier source n'est pas vide
    2-Ouvres ton fichier de sortie enfin d'execution
    Tu peux aussi mettre un "writeln(i)" pour juste voir ce que vaut i apres la lecture dans le fichier
    Cordialement
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Points : 8
    Points
    8
    Par défaut problème persistant
    bonjour tout le monde,

    je vous remercie encore pour vos réponses.
    j'ai déjà effectué toutes les opérations que vous m'avez demandées mais niet. En effet j'ai rempli mon fichier avec un élément par ligne j'attends l'exécution de mon programme et je ferme même le compilateur après l'exécution. Malheureusement, quand j'ouvre mon fichier sortie.txt rien n'est écrit.
    En passant, j'utilise ce compilateur car je suis obligé de le faire.... : Dev-pascal 1.9.2 mais je crois que cela n'a aucun rapport avec mon problème.

    J'attend vos réponses et merci encore une fois

    cordialement,
    Freeman

  8. #8
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Mais je ne vois qu'une seule boucle dans ton programme : celle de lecture.
    Voilà une des choses qui peuvent sauter aux yeux avec une bonne indentation du code. Je serais toutefois surpris que le compilateur n'ait pas bronché.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  9. #9
    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,
    Citation Envoyé par Alcatîz Voir le message
    Bonjour !

    Mais je ne vois qu'une seule boucle dans ton programme : celle de lecture.
    Voilà une des choses qui peuvent sauter aux yeux avec une bonne indentation du code. Je serais toutefois surpris que le compilateur n'ait pas bronché.
    Non, une boucle while pour lire, et une for pour écrire, celle-là encadrée par begin ... end, ce qui la cache un peu.

    Il reste qu'une bonne présentation du code ne fait pas de mal, au contraire.
    Si les cons volaient, il ferait nuit à midi.

  10. #10
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par droggo Voir le message
    Gio,

    Non, une boucle while pour lire, et une for pour écrire, celle-là encadrée par begin ... end, ce qui la cache un peu.

    Il reste qu'une bonne présentation du code ne fait pas de mal, au contraire.
    Ah mince, j'ai supprimé la ligne du for en remaniant le code dans mon éditeur. J'ai rien dit...

    @freemanqc : testes-tu que la création du fichier, les écritures successives et, surtout, la fermeture du fichier ne renvoient pas d'erreur ?
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  11. #11
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Points : 8
    Points
    8
    Par défaut re
    oui il me donne un runtime error 106

  12. #12
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour
    Pour comprendre LA FAQ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab : array [1..1000] of integer;
    Ton fichier doit contenir des entiers au vu de ta declaration
    Cordialement
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  13. #13
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Points : 8
    Points
    8
    Par défaut entiers
    oui oui j'ai lu les faq concernant le runtime et mon fichier ne comprend que des entiers. je connais l'information que je veux traiter et ce n'est que des entiers. il me lit les nombre en tant qu'entiers et les place dans la liste chainée mais le problème persiste toujours au niveau du fichier sortie et c'est là où je ne pige rien si je peux me permettre l'expression

  14. #14
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Points : 8
    Points
    8
    Par défaut hello
    Bonjour tout le monde,

    Je vous remercie pour votre aide mais je ne sais comme par miracle, je ne sais pas ce que j'ai fait, j'étais en train de travailler sur autre chose et en compilant ça a marché lol

    bonne journée pour ceux se réveilleront dans quelques heures et bonne nuit pour ceux qui s'apprêtent à dormir comme moi lol

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

Discussions similaires

  1. [XL-2007] Lecture/écriture sur des fichiers fermés avec critères
    Par webisfun dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/03/2012, 10h41
  2. [XL-2007] Lecture et écriture dans un fichier .txt en VBA
    Par zanys dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/05/2011, 09h45
  3. [PERL]Prob lecture/écriture dans un fichier ".TXT"
    Par Magcom dans le forum Langage
    Réponses: 8
    Dernier message: 29/07/2010, 10h36
  4. [VB.NET]Problème de lecture et écriture sur fichier texte
    Par zouhib dans le forum Windows Forms
    Réponses: 25
    Dernier message: 23/05/2006, 15h30

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