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 :

Sauvegarder les données d'un programme


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par défaut Sauvegarder les données d'un programme
    Bonjour, je rencontre actuellement des difficultés pour écrire des données d'un tableau dans un fichier. Le programme compile bien, le fichier est bien créé, mais lors de son ouverture, il est vide.
    Voilà mon code Pascal :
    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
    38
    39
    40
    program Renseignements;
    const MAX=100;
    type classeChambre=array[1..MAX] of integer;
             fichier = file of integer;
     
    var Tab : classeChambre;
            classesChambre : fichier;
     
    procedure descriptionHotel( var Tab : classeChambre);
    Var i, n, x, y : integer;
     
     
    begin
                    writeln('Quel est le nombre de chambres de l hotel ?  ');
                    Readln(n);
     
                    writeln('Combien y a t-il de types de chambres ?   ');
                    Readln(x);
     
                    writeln('Quel est le nombre de services que propose l hotel ?   ');
                    Readln(y);
     
                    for i:=1 to n do
                    begin
     
                    writeln('Veuillez préciser la classe de la chambre n°',i);
                    readln(Tab[i]);
                    assign(classesChambre, 'classroom.ods');
                    rewrite(classesChambre);
                    write(classesChambre, Tab[i]);
                    close(classesChambre);
     
                    end;
    end;
     
    begin
     
    descriptionHotel( Tab );
     
    end.

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

    Piège classique de rewrite :

    - Si le fichier n'existe pas, il est créé

    - S'il existe, il est ouvert et vidé !!

    Je n'ai rien regardé d'autre, déjà corriger ça.

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    A chaque tour de boucle, tu désignes le fichier (Assign), tu l'ouvres en écriture en le vidant (rewrite), tu écris 1 record et tu le fermes. Il faut mettre le assign, rewrite et close en dehors de la boucle d'écriture

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par défaut
    Merci à vous, mais en les plaçant avant, sauf le close que j'ai mis entre les deux "end", la compilation est réussie mais après avoir compléter, on me signale "runtime error 103..."
    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
     
    procedure descriptionHotel( var Tab : classeChambre);
    Var i, n, x, y : integer;
     
     
    begin
                    writeln('Quel est le nombre de chambres de l hotel ?  ');
                    Readln(n);
     
                    writeln('Combien y a t-il de types de chambres ?   ');
                    Readln(x);
     
                    writeln('Quel est le nombre de services que propose l hotel ?   ');
                    Readln(y);
                    assign(classesChambre, 'classroom.ods');
                    rewrite(classesChambre);
     
                    for i:=1 to n do
                    begin
     
                    writeln('Veuillez préciser la classe de la chambre n°',i);
                    readln(Tab[i]);
                    write(classesChambre, Tab[i]);
     
                    end;
                    close(classesChambre);
    end;
     
    begin
     
    descriptionHotel( Tab );
     
    end.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par défaut
    Voyez vous? j'ai aussi un autre problème avec un autre sous programme qui marche très bien, toutefois le problème est que les données sont en mémoire uniquement lors de l'exécution,après fermeture et réouverture du programme plus aucune donnée sauvegardée, comment faire? Merci beaucoup d'avance

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

    Pour commencer, as-tu compris que chaque utilisation de rewrite vide le fichier ?

    Pour utiliser un fichier :

    - On teste son existence

    NON ==> on le crée (avec rewrite)

    OUI ==> on passe à la suite ... lecture, ...

    et on n'oublie pas de le fermer quand on a fini.

Discussions similaires

  1. sauvegarder les données
    Par mnssylvain dans le forum WinDev
    Réponses: 21
    Dernier message: 17/03/2008, 23h06
  2. [FBDataset] quoi mettre pour sauvegarder les données du DBGrid
    Par Boublou dans le forum Connexion aux bases de données
    Réponses: 1
    Dernier message: 09/06/2007, 18h34
  3. Réponses: 7
    Dernier message: 02/10/2006, 17h55
  4. Sauvegarder les données d'un FormPage
    Par couetbis dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 05/06/2006, 13h30
  5. Sauvegarder les données dans un fichier CSV
    Par beb30 dans le forum MFC
    Réponses: 5
    Dernier message: 08/03/2006, 13h06

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