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
|
procedure triSelection(var fichier : fichierEtudiantsFile);
var
etud1 , etud2 , etud3 : etudiantRec;
position,courant,posMax: Integer;
fin: Integer;
begin
{Ouvre le fichier en lecture}
reset(fichier);
{pointe sur le dernier enregistrement}
fin := filesize(fichier)-1;
{parcour le fichier enregistrement par enregistrement}
for position := fin downto 1 do
begin
{cherche la position du max}
posMax := position;
for courant := 0 to position-1 do
begin
seek(fichier,posMax);
read(fichier,etud1);
seek(fichier,courant);
read(fichier,etud2);
if (etud2.nomPrenom > etud1.nomPrenom) then posMax := courant;
end;
{fin cherche la position du max}
{permuter l'enregistrement d'indice posMax avec l'enregistrement d'indice position}
seek(fichier,position);
read(fichier,etud3);
write(fichier,etud1);
seek(fichier,posMax);
write(fichier,etud3);
end;
end; |
Partager