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

Turbo Pascal Discussion :

[TPW] Affichage d'un fichier


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Par défaut [TPW] Affichage d'un fichier

    J'ai voulu faire un test d'un programme qui lit un fichier d'extension .dat rempli par des chaînes de caractères et affiche ce qu'il contient.
    Quand je le compile il n'affiche aucune faute mais à l'execution il affiche cette erreur : runtime error 100 at 0001:006C.

    Je vous fais voir le code de mon programme :
    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
    program lireafficherfichier;
    uses wincrt;
    type fich=file of string ; 
    var f:fich;
    procedure creation(var f:fich);
    begin
    assign(f,'D:\teste.dat');
    reset(f);
    end;
    procedure affichage(var f:fich);
    var ch:string ;
    begin
    while not eof(f) do
    begin 
    read(f,ch);
    writeln(ch);
    end;
    end;
    begin
    creation (f);
    affichage (f);
    close(f);
    end.
    Il est trés simple c'est juste un test...
    Je voulais savoir pourquoi il ne fonctionne pas.
    Je demande votre aide et je vous remercie d'avance.

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Jio,

    Pense aux balises [ CODE] [ /CODE] (sans les espaces, qui ne sont là que pour invalider les balises), pour que ton code soit lisible.

    - Si tu penses que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure creation(var f:fich);
    begin
    assign(f,'D:\teste.dat');
    reset(f);
    end;
    va créer ton fichier, tu te trompes : Reset ouvre un fichier déjà existant.

    - Pourquoi un fichier binaire de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type fich=file of string ;
    ?

    Pour les fichiers ne contenant que du texte, Pascal a déjà un type spécial : Text.

    - Apprends à comprendre les messages d'erreur, l'erreur runtime 100 indique un problème de lecture sur disque. Ceci devrait t'orienter.

    - Enfin, et c'est un leitmotiv : présenter correctement le code, c'est à dire indenter de manière régulière et cohérente, aérer le code en sautant des lignes pour séparer les différents blocs s'il le faut (au minimum, pour séparer les procédures/fonctions les unes des autres).

  3. #3
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Par défaut
    slt droggo
    le fichier existe deja dans son bon emplacement et le fichier contient deja des chaines de carractéres alors j'ai voulu afficher son continue
    le code du programme semble juste !!!
    s'il vous plait je veut un corrigé de mon programme si quelqu'un peut me donner le code de mon programme corrigé et merci

  4. #4
    Membre chevronné

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Par défaut
    type fich=text ;
    readln(f,ch);

    et peut-etre à la fin :
    readln;
    end.

    Pour voir le résultat

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Fio,

    Citation Envoyé par aymenet1 Voir le message
    slt droggo
    le fichier existe deja dans son bon emplacement et le fichier contient deja des chaines de carractéres alors j'ai voulu afficher son continue
    le code du programme semble juste !!!
    s'il vous plait je veut un corrigé de mon programme si quelqu'un peut me donner le code de mon programme corrigé et merci
    Alors, pourquoi appeler la procédure creation ?

    Le nom des procédures/fonctions/types/variables/constantes... doir refléter leur rôle, ça rend la maintenance/lecture du code beaucoup plus simple.

    Citation Envoyé par Clandestino Voir le message
    type fich=text ;
    readln(f,ch);

    et peut-etre à la fin :
    readln;
    end.

    Pour voir le résultat
    Pourquoi surtyper un type prédéfini ? Une petite modification du code permet d'utiliser directement Text.

    (Cette redéfinition pourrait éventuellement être justifiée s'il fallait modifier un très long code, et encore, les IDE permettent si facilement des remplacements dans tout un fichier...)

  6. #6
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Par défaut
    slt
    mais je peut utiliser un fichier quel conque pas necessairement un fichier texte (.txt)
    le fichier .txt peut contenir des objets de type different
    je veut utiliser le fichier .dat car je peut mettre dans ce fichier des variables de meme type c'est ça que je veut ...
    et encore je dit merci a tous ^^

  7. #7
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Par défaut
    le fichier text s'affiche et marche correctement
    mais je veut afficher le contenu du fichier .dat
    je sais pas pk il ne fonctionne pas le fichier .dat 0o oO lol car dans le lycée on a fait l'affichage d'un fichier .dat en algorithmique j'ai voulu ecrire ça sous pascal

  8. #8
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Lio,
    Citation Envoyé par aymenet1 Voir le message
    slt
    mais je peut utiliser un fichier quel conque pas necessairement un fichier texte (.txt)
    le fichier .txt peut contenir des objets de type different
    je veut utiliser le fichier .dat car je peut mettre dans ce fichier des variables de meme type c'est ça que je veut ...
    et encore je dit merci a tous ^^
    Un fichier Text, par définition, ne contient que des chaines de caractères, c'est ce dont tu parlais dans ton 1er message.

    Pour avoir des réponses adéquates, il faut poser les bonnes questions.

    Pour revenir à l'origine, tu ne peux pas lire un fichier texte ordinaire en utilisant un type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type fich=file of string ;
    car pour Pascal, cela devient un fichier binaire, dans lequel chaque chaine enregistrée, quelle que soit sa longueur réelle utile, est enregistrée entièrement, c'est à dire que la totalité des 256 caractères d'une string y sont, même s'ils ne contiennent pas de données utiles.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/01/2006, 21h10
  2. Script permettant l'affichage d'un fichier via onmouseover
    Par HNT dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/10/2005, 22h58
  3. Affichage d'un fichier graphique (GIF, BMP,...)
    Par tonycalv dans le forum MFC
    Réponses: 2
    Dernier message: 12/09/2005, 07h26
  4. Formater l'affichage d'un fichier
    Par devdev2003 dans le forum Linux
    Réponses: 3
    Dernier message: 28/06/2005, 17h47
  5. Optimiser l'affichage d'un fichier XML de grosse taille...
    Par UnPeuPerdu dans le forum XML/XSL et SOAP
    Réponses: 11
    Dernier message: 03/06/2004, 16h01

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