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 :

Gestions d'enregistrements avec fichier


Sujet :

Pascal

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 36
    Points : 18
    Points
    18
    Par défaut Gestions d'enregistrements avec fichier
    Salut à tous: est ce qu'il ya quelqu'un qui peu m'aider à compiler et à résoudre les problèmes de ce programme? meerci beaucoup ^^ :
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    program fich;
    uses wincrt;
    type
        rec=record
        nom:string;
        moy:integer;
        end;
        tab=array[1..30]of rec;
    var f:text;
        t:tab;
        n:integer;
    {-------------------------------------------------------------------------}
    procedure remplirt(var f:text; var nb:integer);
              var rep:char;
                  e:rec;
                 begin
                      nb:=0;
                      repeat
                            writeln('Entrer Le nom d''elève:');
                            readln(e.nom);
                            writeln('Entrer La myenne:');
                            readln(e.moy);
                            writeln(f,e.nom,':',e.moy);
                            repeat
                                  writeln('voulez vous continuer?o/n');
                                  readln(rep);
                                  nb:=nb+1;
                            until upcase(rep)in['O','N'];
                      until upcase(rep)='N';
                      close(f);
                 end;
    {-------------------------------------------------------------------------}
    procedure transfert(var f:text;var t:tab;nb:integer);
    var ch,x,d,ch1,ch2:string;
        i,j,p,x1,e:integer;
       begin
       reset(f);
       for i:=1 to nb do
           begin
                j:=0;
                readln(f,ch);
                repeat
                      j:=j+1;
                until ch[j]in['1'..'9'];
                if ch[j]in['1'..'9']then
                   begin
                        p:=j;
                        ch1:=copy(ch,length(ch),nb);
                        val(ch1,x1,e);
                        t[i].moy:=x1;
                   end
                else
                    begin
                         ch2:=copy(ch,p-1,1);
                         t[i].nom:=ch2;
                    end;
            close(f);
       end;
       end;
    {-------------------------------------------------------------------------}
    procedure trier(var t:tab;n:integer);
    var p,i,j:integer;
        tmp:rec;
        begin
             p:=1;
             while p<=n do
                   p:=p*3+1;
                   while p<>0 do
                         begin
                              p:=p div 3;
                                   for i:=p to n do
                                       begin
                                            tmp:=t[i];
                                            j:=i;
                                            while (j>p)and(ord((t[j-p].nom)[1])<ord(tmp.nom[1]))do
                                                  begin
                                                       t[j]:=t[j-p];
                                                       j:=j-p;
                                                  end;
                                                  t[j]:=tmp;
                                       end;
                         end;
        end;
    {-------------------------------------------------------------------------}
    procedure transfich(var f:text;n:integer;t:tab);
    var i:integer;
        begin
        reset(f);
             for i:=1 to n do
                 begin
                 with t[i]do
                      begin
                           writeln(f,nom,moy);
                      end;
                 end;
        close(f);
        end;
    {-------------------------------------------------------------------------}
    procedure afficher(var f:text);
    var e:rec;
       begin
            reset(f);
            while not(eof(f))do
                  begin
                       readln(f,e.nom,e.moy);
                       writeln(e.nom,e.moy);
                  end;
            close(f);
       end;
    {-------------------------------------------------------------------------}
    begin
         assign(f,'c:\so\fichiers.txt');
         rewrite(f);
         remplirt(f,n);
         transfert(f,t,n);
         writeln('tableau trasferé!!');
         trier(t,n);
         writeln('tableau trié!!');
         transfich(f,n,t);
         writeln('fichier transféré!!');
         afficher(f);
    end.

  2. #2
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour

    Quel est le problème exact? quel compilateur utilises-tu?
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  3. #3
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 415
    Points
    59 415
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue !

    Une chose m'interpelle dans ton code : tu travailles avec des enregistrements, alors pourquoi te compliquer la vie en stockant les enregistrements dans un fichier texte ?
    Utilise plutôt un fichier d'enregistrements :


    Remarques :
    • Il faut commenter ton code.
    • Il faut gérer les erreurs de lecture de nombres au clavier ainsi que de création, ouverture, lecture, écriture et fermeture de fichier !
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 111
    Points
    111
    Par défaut
    un autre truc qui me frappe c'est le "nb:=nb+1;" dans la boucle qui vérifie si tu entres bien "o" ou "n" dans le remplissage du tableau

    Si je met qu'une seule entrée mais qu'il me faut 5 essais pour trouver la touche "N", tu vas croire qu'il y a 5 entrées dans ton fichier.

    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
    procedure remplirt(var f:text; var nb:integer);
              var rep:char;
                  e:rec;
                 begin
                      nb:=0;
                      repeat
                            writeln('Entrer Le nom d''elève:');
                            readln(e.nom);
                            writeln('Entrer La myenne:');
                            readln(e.moy);
                            writeln(f,e.nom,':',e.moy);
                            repeat
                                  writeln('voulez vous continuer?o/n');
                                  readln(rep);
                                {Ici ...........}  
                                  nb:=nb+1;
                            until upcase(rep)in['O','N'];
                      until upcase(rep)='N';
                      close(f);
                 end;
    Et bon je ne compte pas les fautes d'orthographes vu qu'elles n'empèche pas la compilation

Discussions similaires

  1. [PHP 5.3] Tuto gestion de données avec fichiers plats ?
    Par Toulousaing dans le forum Langage
    Réponses: 1
    Dernier message: 20/02/2013, 13h56
  2. Gestion d'enregistrements, avec upload associé
    Par fetardalyon dans le forum Débuter
    Réponses: 8
    Dernier message: 07/10/2008, 09h01
  3. gestion des erreurs avec fichier .properties
    Par _momo dans le forum Struts 1
    Réponses: 2
    Dernier message: 20/08/2007, 14h05
  4. Ou est enregistré le fichier avec SELECT OUTFILE ?
    Par weed dans le forum Requêtes
    Réponses: 1
    Dernier message: 03/08/2006, 11h15
  5. enregistrer un fichier avec l'icone que je precise
    Par Nadirov dans le forum Débuter
    Réponses: 5
    Dernier message: 23/04/2006, 17h04

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