J'ai besoin de trier un fichier d'enregistrements mais je ne suis pas tout à fait sûr de la façon de le faire. J'ai un fichier de dossiers et j'ai essayé de les trier en utilisant un simple tri à bulles mais je suis coincé et j'ai besoin d'aide. Quelqu'un pourrait-il m'aider? Je vais lister le code ci-dessous.trier un fichier d'enregistrements erreur
HighScoreFile = file of HighScoreRecord;
var
frmEnterDetails: TfrmEnterDetails;
HighScoreMasterFile: HighScoreFile;
HighScore:HighScoreRecord;
FileArray:array[1..20] of HighScoreRecord;
i:integer;
Procedure Sort
var
i,j,temp:integer;
AssignFile(HighScoreMasterFile, 'HighScores.dat');
Reset(HighScoreMasterFile);
while not eof(HighScoreMasterFile) do
begin
i:=i+1;
read(HighScoreMasterFile, HighScore);
FileArray[i].Name:=HighScore.Name;
FileArray[i].Date:=HighScore.Date;
FileArray[i].FinalScore:=HighScore.FinalScore;
for i:=0 19 do
for j:=0 to 18 do
if FileArray[j].Score > FileArray[j+1].Score then
begin
FileArray[temp]:=FileArray[j];
FileArray[j]:=FileArray[j+1];
FileArray[j+1]:=FileArray[temp];
end;
end;
Toute aide serait formidable.
Votre procédure de tri est incomplète. 'i' n'est pas initialisé. L'indexation 'FileArray' devrait commencer par 1 dans votre boucle for. 'temp' n'est jamais initialisé. 'i' n'est jamais utilisé dans la boucle for. etc. –
Vous faites également le tri lors de la lecture du fichier. Lire le fichier entier, et après cela faire le tri. – RBA
Merci les gars pour l'aide – user2180030