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 :

Ajout d'élément dans un fichier séquentiel


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Par défaut Ajout d'élément dans un fichier séquentiel
    Salut !
    Dans un but pédagogique, J'essaie de manipuler les fichiers séquentiels structurés sous Pascal.
    Les opérations de base sont : la création, la lecture et la mise à jour.
    J'ai pris l'exemple d'un fichier qui contient des coordonnées 2D d'un ensemble de points dont voici la déclaration :
    Code Pascal : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    type
    point = record
    X, Y : integer ;
    end ;
     
    TRACE = file of point ;
    var
    FichPoint : TRACE;
    p : point;
    Pour la création du fichier :
    Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    {Ce code Créer le fichier est y ajoute deux éléments}
    assign(FichPoint, 'c:fich.dat') ;
    rewrite (fichPoint);
    p.x:=20;
    p.y:=25;
    write(FichPoint,p);
    p.x:=30;
    p.y:=45;
    write(FichPoint,p);
    close(FichPoint);
    Pour la lecture :
    Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    {Ce code parcours le fichiers et affiche l'ensemble des points}
    assign(FichPoint, 'c:fich.dat') ;}
    reset(FichPoint);
    while Not(EOF(FichPoint)) do
    begin
    read(FichPoint,p);
    writeln(p.x);
    writeln(p.y);
    writeln('***');
    end;
    close(FichPoint);
    Jusqu'ici il n'y a aucun problème.

    Maintenant, je voudrais effectuer une mise à jour sur ce fichier.
    Corrigez-moi svp si je me trompe, il me semble que pour un fichier séquentiel, la seule opération de mise à jour possible est l'ajout en fin de fichier (impossible d'ajouter un élément au milieu du fichier).

    Mais alors, comment ajouter un élément en fin de fichier, sans écraser son contenu ?
    En utilisant Rewrite, le fichier est détruit et avec Reset, le pointeur est au début du fichier !
    Avez-vous des idées ?

    PS : Je sais qu'il est préférable dans ce cas de travailler avec des fichiers à accès direct ; j'essaie uniquement de lever certaines zones d'ombre des fichiers séquentiels.

  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
    Sia,

    Regarde la fonction seek.

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Par défaut
    Merci de votre réponse,
    La fonction seek règle en effet le problème.
    Cependant, cette fonction implique un accès direct dans le fichier.
    Dans mon cas, je voudrai utiliser un accès séquentiel.

    La solution que j'ai trouvée consiste à parcourir tout le fichier jusqu'a ce que le pointeur est sur l'indicateur de fin de fichier, ensuite faire l'insertion du nouvel enregistrement. ça a l'air de marcher
    Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while Not(EOF(FichPoint)) do
    begin
    read(FichPoint,p);
    end;
    p.x:=10;
    p.y:=12;
    write(FichPoint,p);

Discussions similaires

  1. [JDOM] Ajouter des éléments dans un fichier XML
    Par pitchu dans le forum Format d'échange (XML, JSON...)
    Réponses: 14
    Dernier message: 25/12/2015, 10h06
  2. [JDOM] Ajout d'un élément dans un fichier xml
    Par bidulee dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 24/04/2009, 16h40
  3. Comment ajouter un élément dans un fichier XML
    Par sorilazer dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 04/06/2007, 21h56
  4. Ajout de texte dans un fichier
    Par willowII dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 24/08/2004, 19h30
  5. Réponses: 14
    Dernier message: 01/12/2003, 17h47

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