Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#1

Files suchen und sortieren

  Alt 11. Jul 2011, 22:30
Ich ermittle einige PDF-Dateien und sortiere die nach dem Erstellungsdatum.
Das funktioniert, ich bin aber nicht sicher, ob ich die einfachste Lösung habe.
Würde es jemand anders machen?

Muss nicht mit Generics sein. Würde eine anonyme Methode etwas vereinfachen?

Delphi-Quellcode:
type

  TsrComparer = class(TComparer<TSearchRec>)
    function Compare(const sr1, sr2: TSearchRec): Integer; override;
  end;

implementation

{ TMeleePairComparer }

function TsrComparer.Compare(const sr1, sr2: TSearchRec): Integer;
begin
  Result := 0;
  if Result = 0 then
    Result := -CompareValue(sr1.TimeStamp, sr2.TimeStamp);
  if Result = 0 then
    Result := CompareStr(sr1.Name, sr2.Name);
end;

...

procedure TFormOlympic.TabSheetReportShow(Sender: TObject);

  procedure GetFiles;
  var
    sr: TSearchRec;
    srList: TList<TSearchRec>;
    F: Boolean; // ergänzt
  begin
    srList := TList<TSearchRec>.Create(TsrComparer.Create);
    if PathReport <> 'then
    begin
      F := FindFirst(PathReport + '*.pdf', (faAnyFile and not faDirectory), sr);
      while F = 0 do
      begin
        if ExtractFileExt(sr.Name) = '.pdfthen
          srList.Add(sr);
        F := FindNext(sr);
      end;
      FindClose(sr);
    end;
    srList.Sort;
    ListBoxReport.Clear;
    for sr in srList do
      ListBoxReport.Items.Add(sr.Name);
    FreeAndNil(srList);
  end;

begin
  GetFiles;
  ListBoxReport.ItemIndex := 0;
  ListBoxReportClick(Sender);
end;

PS: Auf ein TsShellListView (AlphaControls) hatte ich verzichtet, da ein umsortieren dort nicht möglich war.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (12. Jul 2011 um 17:38 Uhr)
  Mit Zitat antworten Zitat