![]() |
Customsort - sortieren nach datum
ich habe eine Stringliste, in der verschiedene dateinamen stehen, die ich mit Findfirst und Findnext eingelesen habe.
Nun möchte ich die Dateien in dieser Stringliste nach ihrem Erstellungsdatum sortieren und da scheitere ich ein wenig. Aufruf der Funktion sieht so aus:
Delphi-Quellcode:
Die Funktion selber so:
for k:= 0 to liste.Count-1 do
ShowMEssage('vor sortierung: '+liste[k]); Liste.CustomSort(CompareDate); for k:= 0 to liste.Count-1 do ShowMEssage('nach sortierung: '+liste[k]);
Delphi-Quellcode:
Das Problem ist nun aber, er geht gar nicht in die Funktion rein. Irgendjemand eine Idee warum nicht.function CompareDate(List: TStringList; Index1, Index2: Integer): Integer; var Val1, Val2: TDateTime; begin val1:= FileDateToDateTime(FileAge(list[Index1])); val2:= FileDateToDateTime(FileAge(list[Index2])); Result := CompareDateTime(Val1, Val2); end; |
Re: Customsort - sortieren nach datum
Sieht eigentlich OK aus, probiere aber mal "Liste.CustomSort(@CompareDate);".
So hätte ich es geschrieben. |
Re: Customsort - sortieren nach datum
auch nicht
|
Re: Customsort - sortieren nach datum
Hi,
in der OH steht: Zitat:
Gruß oki P.S. hinder Functionsdeklaration stcll; !! |
Re: Customsort - sortieren nach datum
Hallo,
Du schreibst von Dateinamen, die in der Liste stehen und willst das Dateidatum sortieren!? Wie sind die Daten in der Liste gespeichert? |
Re: Customsort - sortieren nach datum
in der Stringliste stehe die Dateiname inklusiver ihres Pfades - also C:\ordner\test1.tif.
|
Re: Customsort - sortieren nach datum
Zitat:
Delphi-Quellcode:
{$APPTYPE CONSOLE}
uses SysUtils, Classes, DateUtils; function CompareDate(List: TStringList; Index1, Index2: Integer): Integer; var Val1, Val2: TDateTime; begin val1:= FileDateToDateTime(FileAge(list[Index1])); val2:= FileDateToDateTime(FileAge(list[Index2])); Result := CompareDateTime(Val1, Val2); end; var sl : TStringList; i : Integer; begin sl := TStringList.Create(); sl.Add('New Text Document (3).txt'); sl.Add('New Text Document (2).txt'); sl.Add('New Text Document.txt'); sl.CustomSort(CompareDate); for i := 0 to sl.Count - 1 do begin Writeln(sl[i]); end; end. Zitat:
|
Re: Customsort - sortieren nach datum
Hallo Susanne,
um CustomSort nutzen zu können, muß die Eigenschaft .Sorted der Stringliste auf den Wert False gesetzt werden. Gruß Hawkeye |
Re: Customsort - sortieren nach datum
Hallo,
Beitrag hat sich erledigt, da Hawkeye die Lösung gepostet hat. |
Re: Customsort - sortieren nach datum
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz