2013-04-27 1 views

Répondre

0

Lire le fichier dans un tableau d'enregistrements, en insérant chaque enregistrement à l'endroit correct. Ensuite, réécrivez le tableau dans le fichier.

Ce qui suit est un code non testé, écrit sur le dessus de ma tête. Les lignes clés ont été marquées // ** - la première ligne trouve l'endroit correct pour l'enregistrement nouvellement lu, la deuxième ligne heurte tous les enregistrements à partir de cet endroit.

const 
maxrec = 50; 

type 
MyRecord = record 
      name: string[63]; 
      date: tdatetime; 
      score: integer 
      end; 

var 
myfile: file of myrecord; 
rec: myrecord; 
data: array [1..maxrec] of myrecord; 
i, j, count: integer; 

begin 
fillchar (data, sizeof (data), 0); 
assignfile (myfile, '.....'); 
reset (myfile); 
read (myfile, rec); 
count:= 0; 
while not eof (myfile) do 
    begin 
    i:= 1; 
    while (i <= count) and (rec.score > data[i].score) do inc (i); //** 
    for j:= i to count do data[j+1]:= data[j];      //** 
    data[i]:= rec; 
    inc (count); 
    end; 

closefile (myfile); 
assignfile (myfile, '.......'); 
rewrite (myfile); 
for i:= 1 to count do write (myfile, data[i]); 
closefile (myfile); 
end; 
Questions connexes