레코드 파일을 정렬해야하지만 어떻게해야하는지 잘 모르겠습니다. 레코드 파일이 있는데 간단한 버블 정렬을 사용하여 정렬하려고 시도했지만 붙어있어 도움이 필요합니다. 누구든지 나를 도울 수 있을까? 나는 아래 코드를 열거 할 것이다.레코드 파일 정렬 오류
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;
도움이 될 것입니다.
정렬 절차가 불완전합니다. 'i'는 초기화되지 않았습니다. Indexing FileArray는 for 루프에서 1로 시작해야합니다. 'temp'는 결코 초기화되지 않습니다. 'i'는 for 루프에서 사용되지 않습니다. –
또한 파일을 읽는 동안 정렬을합니다. 전체 파일을 읽은 후 그 파일을 정렬하십시오. – RBA
도와 줘서 고마워. – user2180030