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 :

Renverser un fichier


Sujet :

Pascal

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut Renverser un fichier
    Voici ce que j'ai fait; j'ai vu que dans un post vous avez fait une correction d'un exercice similaire mais j'ai du mal à comprendre ce que vous savez fait, donc je vous mets mon bout de programme.

    J'ai fait comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    rewrite(f2);
     
       for i:= 0 to filesize(f1)  do begin
          seek(f1,filesize(f1)-i );
          read(f1, x);
          write(f2, x);
       end;
    Ceci doit être une procédure qui doit générer dans le fichier 2 l'inverse du fichier 1.

    Il y a une autre consigne mais déjà je veux réussir à faire ça; pour le reste, je verrai.

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    C'est le même code que dans l'autre post. Essaye de comprendre en regardant l'aide en ligne
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Le tiens doit planter tout de suite, non ?

    D'après ce que je vois, à la première itération de ta boucle tu te places en fin de fichier et tu essayes de lire un caractère (au delà de la fin du fichier donc).

    Pour que ça marche, il faudrait commencer l'itération à 1 et non à 0.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    ok et si je me place a 1, il lira le caractere en position 0?

    ety oui je c'est qu'il ressemble, mais j'aimerai savoir le faire a ma methode a quoi sa me servirai de copier betemen t l autre.

    ou alor je peut faire ceici:

    rewrite(f2);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i:= 0 to filesize(f1)-1  do begin
          seek(f1,filesize(f1)-i );
          read(f1, x);
          write(f2, x);
       end;

  5. #5
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Je crois que le mieux pour toi serait que tu essaye de dérouler ton algo à la main (sur une feuille).

    Imagine toi un fichier de petite taille (4 ou 5 caractères) et "pense comme la machine", écris chaque appel de procédure/fonction avec les bons arguments et écris les résultats obtenus.

    Mais surtout relis bien la doc. de seek(File, Pos) (et mon post précédent aussi, apparement tu n'as pas bien compris ce que je voulais dire).

    A part te faire ton algo, je vois pas comment t'aider plus.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    je vais y reflechier serieusement , je vais faire se que tu ma di demain matin , et sinon je reviendrai t embeter demain apres midi aurevoir

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    donc ok je l'ai fait pas a pas , mais je ne vois pas ou je me trompe, pour moi a partir de ma boucle qui va de 0 a la taille du fichier, je demande au pointeur a chaque tour de boucle de se placer a l endroi taille du fichier moin i.
    puis je demand de lire et enfin d ecrire dans f2

    mais je ne compren pas ou j ai fait mon erreur, si tu veu m expliquer je suis preneur, meme l'lago comme tu disai m'aiderai beaucoup a condition que je le comprenne.

    merci d'avance

  8. #8
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Au premier tour de boucle, i = 0, donc taille - i = taille. Tu positionnes le pointeur à la fin du fichier, après le dernier élément. Tu essayes ensuite de lire, mais comme il n'y a rien à lire puisque tu as atteint la fin du fichier, il y a une erreur.
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    a ok je me positionne apres le dernier element , mais il ne lit que dans un sens?donc je doi partir de 1?

  10. #10
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Euh oui, il lit que dans un sens, dans le sens séquentiel normal. Tu te places avant le dernier enregistrement, tu le lis, tu te places avant l'avant-dernier, tu le lis, tu te places avant l'avant-avant-dernier, tu le lis, etc...
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    ok donc en partan de 1 sa marche si je ne me trompe pa?

  12. #12
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Normalement oui !
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    ok donc la personne qui avait di sa avait raison des le debut , sui desoler de l'avoir trouver aussi tard mais jpense avoir compri

    merci a tous

Discussions similaires

  1. fichier mappé en mémoire
    Par WinBernardo dans le forum Delphi
    Réponses: 7
    Dernier message: 01/12/2006, 09h38
  2. Réponses: 5
    Dernier message: 20/08/2002, 18h01
  3. Lire 1 bit d'un fichier en C
    Par Anonymous dans le forum C
    Réponses: 3
    Dernier message: 23/05/2002, 18h31
  4. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37
  5. Fichier PDOXUSRS.NET
    Par yannick dans le forum Paradox
    Réponses: 5
    Dernier message: 05/04/2002, 09h45

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