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 :

Remplir un fichier d'enregistrements


Sujet :

Turbo Pascal

  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 20
    Par défaut Remplir un fichier d'enregistrements
    Salut,

    j'ai créé un fichier texte d'enregistrement et je voulais ajouter un élément mais ça ne marche pas car le programme lit le premier champ de l'enregistrement mais le reste non ; il sort de l'écran noir comme si l’exécution du programme était terminée.
    Le programme est le suivant :
    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
    program fichier;
    type
      client=record
        numero:string;
        nom:string;
      end;
    var
      fclient:file of client;
      b:client;
     
    begin
     
      assign(fclient,'dot.txt');
      rewrite(fclient);
      read(b.numero);
      read(b.nom);
     
      write(fclient,b);
      close(fclient);
     
    end.

  2. #2
    Membre éprouvé Avatar de Modulpro
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2010
    Messages : 76
    Par défaut
    Bonjour,

    Essaye de remplacer les read par des readln lors de la saisie des informations.
    De plus, évite de laisser ton fichier ouvert inutilement en inversant l'ordre des instructions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    readln(b.numero);
    readln(b.nom);
     
    assign(fclient,'dot.txt');
    rewrite(fclient);
    write(fclient,b);
    close(fclient);

  3. #3
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 20
    Par défaut remplir fichier
    bonjour;
    merci pour la réponse j'ai essayé avec les readln et j'ai inversé l'ordre et j'ai fermé le fichier à la fin alors maintenant je peux saisir touts les champs de l'enregistrement mais quand je vérifie le fichier créé je ne trouve que le premier champ qui existe dedans . Merci d'avance.

  4. #4
    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
    Kie,

    Erreur assez classique.

    Chaque fois que tu ouvres ton fichier avec rewrite, il est vidé !

    Pour ajouter des données dans un fichier existant, il faut l'ouvrir avec reset,

    ET ne pas oublier de se positionner à la fin du fichier, sinon tu écris toujours à partir du 1er enregistrement.


  5. #5
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 20
    Par défaut
    salut, merci pour vos réponses ;
    j'ai mis rewrite car je n'avais pas le fichier sur le disque et que je viens de le créer et après j'ai ajouté un élément et je n'ai exécuté le programme qu'une seule fois normalement à la fin de l’exécution du programme je dois trouver un fichier texte contenant un élément qui est un enregistrement constitué de 2champs, si le fichier a été vidé il sera donc vidé totalement mais là je trouve le premier champ que j'ai saisi mai le deuxième non :/ .

  6. #6
    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
    Hie,

    Un fichier déclaré comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fclient:file of client;
    n'est pas un fichier texte, mais un fichier binaire : le record de type client y est écrit tel qu'il est en mémoire.

  7. #7
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 20
    Par défaut
    d'accord merci maintenant je comprends un peu

Discussions similaires

  1. Créer un fichier d'enregistrements
    Par Oregor dans le forum Langage
    Réponses: 19
    Dernier message: 02/06/2012, 20h02
  2. Réponses: 4
    Dernier message: 26/01/2006, 10h24
  3. [VBA-Excel,VB6,Fichier texte]enregistrer un classeur excel..
    Par Tarul dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2005, 13h09
  4. Remplir un fichier binaire de BITS !!!!
    Par ben13 dans le forum C
    Réponses: 98
    Dernier message: 08/01/2005, 19h38
  5. Réponses: 36
    Dernier message: 13/05/2004, 18h22

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