Bonjour à vous tous,

j'ai une petite erreur sur mon programme, ou j'ai du mal à la percevoir. Si vous pouvez me donner un petit coup de pouce, je vous serai très reconnaissant.
Merci d'avance.

Voilà le programme :
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
program         TP;
 
uses crt;
 
Type
 
  date = record
         jj,mm,aaaa:integer;
  end;
 
  adr = record
        num:integer;
        rue , commune , wilaya :string;
  end;
 
  Note= record
        nom_mod : string;
        coef : integer ;
        EMD1,EMD2,EMD3,TP,SYNT,MM1,MM2,MM3,MGA : real;
        class_M1 , class_M2 , class_M3 , class_A : integer;
  end;
 
  etudiant = record
             mat : integer;
             nom , prenom : string;
             date_nais : date;
             LDN , adresse : ADR;
             NOTE_etud : note ;
  end;
 
  fich = file of etudiant ;
 
 
VAR
Fichier : Fich ;
i: integer;
etud:etudiant;
 
(* ---------- procedure qui sert a permuter les elements d'un fichier -----*)
 
  procedure   permuter  ( var f: fich ; i,j:integer);
              var
              enre_temp , enre_temp1 : etudiant ;
              begin
              seek( f , i ) ;
              read( f , enre_temp ) ;
              seek( f , j ) ;
              read( f , enre_temp1 ) ;
              seek( f , i ) ;
              write( f , enre_temp1 ) ;
              seek( f , j ) ;
              write( f , enre_temp ) ;
              end;
 
(* --------la procedure tri_fichier_nom a pour role de trier un fichier selon le nom ------------ *)
 
Procedure  tri_nom  ( var f:fich);
 
             VAR
 
             enre_temp , enre_temp1 : etudiant ;
             P_entre : boolean ;
             i , cpt , position :integer;
             nom_min : string;
 
             begin
             cpt := 1 ;
             reset(f);
             while (cpt <= filesize(f) )  do
                  begin
                  seek(f,cpt);
                  i := cpt ;
                  P_entre:= true;
                  While i <= filesize(f) do
                        begin
                        read(f,enre_temp);        //<------------------------------------ (voilà l'erreur ).
 
                        if (P_entre ) then
                          begin
                          nom_min := enre_temp.nom ;
                          position:=i;
                          end
                        else
                            begin
                            if( nom_min > enre_temp.nom) then
                               begin
                               nom_min := enre_temp.nom;
                               position := i ;
                               end;
                            end;
                        i := i+1 ;
                        end;
                 if (position <> cpt ) then
                   begin
                   permuter(f,position,cpt);
                   end;
 
                 cpt := cpt+1
                  end;
 
             end;
 
(* ----- cette proc‚dure nous sert … remplir un fichier donn‚ -------------*)
 
 Procedure creer_fich_etudiants ( Var F : Fich ) ;
 Var
  rep : Char ;
  i : integer ;
  Etud : Etudiant ;
 Begin
  assign ( F , 'c:\bureau.txt' );
  rewrite ( F ) ;
  i := 2 ;
  Write ( ' Veuillez saisir le Nom du 1 ier etudiant : ' ) ;
  readln ( Etud.nom );
  write ( ' Son prenom : ' );
  readln ( Etud.prenom );
  write(f,etud);
  clrscr ;
  writeln (' Y a t''il un autre etudiant a ajouter ? ') ;
  writeln  ('    Si oui tapez O  sinon N puis entrer !! ');
  read (rep) ;
  readln;
 
  while  Rep = 'o' do
       begin
       Write( ' Veuillez saisir le Nom du ', i,' iem etudiant : ' ) ;
       readln( Etud.nom );
       writeln ( ' Son prenom : ' );
       read ( Etud.prenom );
       write(f,etud);
       clrscr ;
       readln;
       writeln (' Y a t''il un autre etudiant a ajouter ? ') ;
       writeln  ('    Si oui tapez O sinon N puis entrer !! ');
       read (rep) ;
       readln;
       i := i+1;
       end;
 
 
 
       writeln(' Merci ! :-) ');
       close(F);
 end;
 
 
 
Begin
  Creer_fich_etudiants(Fichier);
  readln;
  tri_nom(fichier);
  reset(fichier);
  for i :=1 to filesize(fichier) do
     begin
     read(fichier,etud);
     writeln(etud.nom  ,' ',   etud.prenom ) ;
 
     end;
     close(fichier);
end.
Encore merci ......