![]() |
textdatei sortieren
moin
ich möchte gerne eine textdatei sortieren lassen. und zwar so, dass keine doppelten einträge in einem bereich vorkommen, sondern dafür ein zähler um eins erhöht wird. beispiel: [22.02.05] werder; wird; meister; werder; ist; meister; bayern; wird; letzter; [23.02.05] werder; wird; meister; es soll also unter einem datum nicht 2mal die gleiche zeile auftreten. mit databanken hab ich mich noch nie beschäftigt, gibt es andere möglichkeiten? |
Re: textdatei sortieren
Moin herrentor,
such mal hier im Forum, das Thema gabs schon öfters (auch in letzter Zeit) Greetz alcaeus |
Re: textdatei sortieren
ich weiß, ich hatte vor nicht ganz so langer zeit eine ähnliche frage gestellt, aber das ergebniss war, dass ich mit einer *.ini datei versuchen soll, hat aber nicht hingehauen und jetzt hab ich die ansprüche soweit zurückgeschraubt, dass es vielleicht doch in einer stringlist sortiert werden kann, oder nicht?
|
Re: textdatei sortieren
Mit einer Stringlist sollte das funken
Delphi-Quellcode:
MeineString_List : TStringlist;
Procedure xxxx begin MeineString_List:=TStringlist.Create; try MeineString_List.LoadFromFile(Pfad); except begin ShowMessage('Fehler beim Laden der Datei'); MeineString_List.free; exit; end; end; function vergleiche(x:Integer):String; //x Ist der aktuelle String (count) var temp: string; begin temp:= trim(copy(MeineString_List.Strings[x],41,30)); Hier dann noch die Stringlist nach temp durchsuchen und vergleichen. usw. end; |
Re: textdatei sortieren
ist das bei deinem ansatz nicht so, dass man in einer datei dann auch nur insgesamt einmal ein string vorkommen kann? die datei darf durchaus mehrere male den string enthalten, jedoch nicht zwischen einem datum und dem nächsten.
|
Re: textdatei sortieren
Zitat:
Aber du kannst dir ja den Index von einem Datum bis zum nächsten merken und dann nur diesen Bereich nach doppelten Einträgen durchforsten. |
Re: textdatei sortieren
das problem ist nur, dass es keine festen indizes gibt. es stehen immer unterschiedlich viele einträge unter'm datum. angenommen ich würde das datum auch noch rausnehmen, wie kann denn die zeilen vergleichen, ich durchschau irgendwie dein programm nicht. ich hätte das jetzt so gemacht:
Delphi-Quellcode:
aber ich kann doch nicht alle möglichen varianten (werder; wird; meister/ werder; ist; meister/ etc.) hinschreiben, wie kann ich das vereinfachen und wie kann ich in die datei einen counter einfügen, der sich dann bei else erhöht?
if fileexists('C:\test.txt') then
begin sl.LoadFromFile('C:\test.txt'); if pos('werder; wird; meister', sl.Text)=0 then begin sl.Add('werder; wird; meister'); sl.SaveToFile('C:\test.txt'); end; end; |
Re: textdatei sortieren
Zitat:
Lade die Datei in ein StringList. Jetzt kopierst Du alle Einträge zwichen dem ersten und nächsten "Datum" in eine zweite SL. Diese sortierst Du und prüfst auf doppelte Einträge. Danach verschiebst Du diese in eine dritte Stringlist. Jetz wiederholst Du dies für alle Einträge die zwichen zwei Daten stehen. Fertig. |
Re: textdatei sortieren
hast du den befehl für das herauskopieren zwischen datum1 und datum2 vielleicht parat?
|
Re: textdatei sortieren
Zitat:
Du weisst ja wie eine Textzeile aussieht in der das Datum steht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 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 by Thomas Breitkreuz