Компоненты 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  ...
→ Ссылка