Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ini-Datei komplett auslesen (https://www.delphipraxis.net/53829-ini-datei-komplett-auslesen.html)

PierreB 6. Okt 2005 14:13

Re: Ini-Datei komplett auslesen
 
Zitat:

Zitat von Luckie
Ich kenn die Komponente nicht, aber falls die keine eigene Methode zum Sortiren kennt, einfach in einem Zwischenschritt selber sotieren.

Naja:

Der Valuelisteditor hat zwei Spalten (wie im Delphi Objektinspektor), links stehen die Namen und rechts dann die Werte(Datumswerte). Nun dachte ich mir lad ich die Datumswerte einfach in ne Stringlist und sortier die dann, aber allein beim rausholen der werte scheitere ich schon. :wall:

teebee 6. Okt 2005 15:25

Re: Ini-Datei komplett auslesen
 
Habe hier mal was zusammengebastelt:
Delphi-Quellcode:
// Wandelt ein Datum aus dem Format 'tt.mm.jjjj' in das Format 'jjjjmmtt', so wird es sortierbar
Function MakeSortableDate(Date: String): String;
Begin
  Result := Copy(Date,7,4)+Copy(Date,4,2)+Copy(Date,1,2);
End;

// die CustomSort-Routine
Function DateSort(List: TStringList; i1,i2: Integer):Integer;
Begin
  Result := CompareText(MakeSortableDate(List.Values[List.Names[i1]]),MakeSortableDate(List.Values[List.Names[i2]]));
End;

procedure TForm1.Button1Click(Sender: TObject);
Var mi: TMemIniFile;
    sl: TStringList;
begin
  mi := TMemIniFile.Create('test.ini');
  sl := TStringList.Create;
  Try
   mi.ReadSectionValues('Data',sl);
   sl.CustomSort(DateSort);
   vle.Strings.Assign(sl);
  Finally
   mi.Free;
   sl.Free;
  End;
end;
Gruß, teebee

PierreB 6. Okt 2005 16:18

Re: Ini-Datei komplett auslesen
 
Hallo teebee,

das funktioniert wirklich super, vielen Dank ! :cheers:

Luckie 6. Okt 2005 16:22

Re: Ini-Datei komplett auslesen
 
Zitat:

// Wandelt ein Datum aus dem Format 'tt.mm.jjjj' in das Format 'jjjjmmtt', so wird es sortierbar
Und wenn das Datum so vorliegt: yyyy-mm-dd? Ein datumswert ist intern auch nur ein Double-Wert man kann ihn also direkt über die < > Operatoren vergleichen.

PierreB 6. Okt 2005 16:33

Re: Ini-Datei komplett auslesen
 
Zitat:

Und wenn das Datum so vorliegt: yyyy-mm-dd?
In meinem Fall liegen sie immer nur so wie oben geschrieben vor, da alle Werte aus dem DateTimePicker kommen.

Luckie 6. Okt 2005 16:36

Re: Ini-Datei komplett auslesen
 
Und der hält sich nicht an das im System eingestellte Datumsformat? Kann ich eigentlich nicht glauben. Stell in der Systemsteuerung mal das Datumsformat um und probier dann noch mal. Aber warum der zeitaufwendige Weg mit der Stringkopiererei, wenn er gar nicht nötig ist? Nicht dass du mit einem direkten vergleich der Datumswerte schneller bist, du hast außerdem kein Problem mit den Datumsformaten.

teebee 6. Okt 2005 17:49

Re: Ini-Datei komplett auslesen
 
Wenn das Datum in lesbarer Form vorliegen soll (das unterstelle ich jetzt mal), geht es nur über einen String. Mit dem DateTimePicker kann man über ein nachgeschaltetes FormatDateTime sicherstellen, dass das Format, das in die Ini geschrieben wird, unabhängig von der Systemeinstellung, immer korrekt ist. Um Fehler durch händisches Editieren der Ini zu erkennen, sollte man jeden Datumsstring noch auf Plausibilität untersuchen.

Gruß, teebee


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 Uhr.
Seite 2 von 2     12   

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