Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi In Textdatei nach Datum und Uhrzeit sortieren (https://www.delphipraxis.net/49295-textdatei-nach-datum-und-uhrzeit-sortieren.html)

pbk 8. Jul 2005 13:43


In Textdatei nach Datum und Uhrzeit sortieren
 
HI @all,

ich bin gerade dabei ein programm vom arbetiskolegen zu erweitern.
das ursprungsprogramm ist ein geburtstagskalender der anzeigt wer +/- 3 tage (wegen Wocheende) geburtstag hat.
das ganze soll jetzt zu einem einfachen terminplaner mutieren.

die daten liegen in einer textdatei vor. --> "dd.mm.jjjj [tab] name"

damit die alten programme mit der erweiturng auch noch weiterlaufen habe ich jetzt
nur noch die uhrzeit angehängt. --> "dd.mm.jjjj [tab] name [tab] hh:mm"

jetzt habe ich probleme beim sortieren. das datum oder die uhrzeit alleine ist kein problem,
aber beides... der reisete datensalat.

vielleicht hat ja jemand eine idee...

Steve 8. Jul 2005 14:05

Re: In Textdatei nach Datum und Uhrzeit sortieren
 
Hi,

Du könntest die Infos z.B. mit Delphi-Referenz durchsuchenEncodeDate + EncodeTime zu einem TDateTime-Wert zusammenfassen und dann sortieren :)

Gruß
Stephan :dance:

marabu 8. Jul 2005 17:14

Re: In Textdatei nach Datum und Uhrzeit sortieren
 
Hallo pbk,

willkommen im Forum. Vielleicht kannst du davon was verwenden:

Delphi-Quellcode:
program txtsort;

{$APPTYPE CONSOLE}

uses
  Classes,
  SysUtils,
  Windows;

var
  sl: TStringList;
  i: integer;
  fs: TFormatSettings;

function CustomCompare(list: TStringList; index1, index2: integer): integer;
var
  dt1, dt2: TDateTime;
  s: string;
begin
  s := list[index1];
  dt1 := StrToDate(Copy(s, 1, 10), fs) + StrToTime(Copy(s, Length(s) - 4, 5), fs);
  s := list[index2];
  dt2 := StrToDate(Copy(s, 1, 10), fs) + StrToTime(Copy(s, Length(s) - 4, 5), fs);
  if dt1 < dt2 then Result := -1 else
  if dt1 > dt2 then Result := 1 else
  Result := 0;
end;

begin
  sl := TStringList.Create;
  sl.LoadFromFile(ChangeFileExt(ParamStr(0), '.txt'));
  GetLocaleFormatSettings(GetUserDefaultLCID, fs);
  fs.ShortDateFormat := 'dd.mm.yyyy';
  fs.ShortTimeFormat := 'hh:nn';
  fs.DateSeparator := '.';
  fs.TimeSeparator := ':';
  sl.CustomSort(CustomCompare);
  for i := 0 to sl.Count - 1 do
    WriteLn(sl[i]);
  ReadLn;
  sl.Free;
end.
Grüße vom marabu

pbk 11. Jul 2005 09:51

Re: In Textdatei nach Datum und Uhrzeit sortieren
 
HAllo @all,

danke erstmal für die schnelle hilfe,

mit dem befehlsumfang von delphi bin ich noch nicht ganz so vertraut, leider, aber ich bin bin guter hoffnung das sich das bald legt.

Übung macht den Meister.

Mal sehen was ich davon verwerten kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz