Компоненты Delphi
Допустим, у меня есть список из записей, который сохраняется и загружается в/из типизированного файла. Каждая запись - это информация об определенном фильме(задание "фильмотека"). Там есть номер, название, год, страна производства, а как мне отсортировать список по одному из этих полей ? Заранее спасибо
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
type TMyRec = record
Name: String[30];
Age: integer;
end;
function Compare(const l, r: TMyRec; key: Integer): Integer;
begin
case key of
0: Result := CompareStr(l.Name, r.Name);
1: Result := l.Age - r.Age;
end;
end;
И в процедуре сортировки в месте сравнения вместо < используете (key=0 для сравнения по имени, 1 для сравнения по возрасту)
procedure Sort(..., key);
...
if Compare(a[i], a[j], key) < 0 then ...