Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi textdatei sortieren (https://www.delphipraxis.net/40921-textdatei-sortieren.html)

herrentor 23. Feb 2005 10:38


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?

alcaeus 23. Feb 2005 10:42

Re: textdatei sortieren
 
Moin herrentor,

such mal hier im Forum, das Thema gabs schon öfters (auch in letzter Zeit)

Greetz
alcaeus

herrentor 23. Feb 2005 10:48

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?

Schuster 23. Feb 2005 11:03

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;

herrentor 23. Feb 2005 11:15

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.

Schuster 23. Feb 2005 11:22

Re: textdatei sortieren
 
Zitat:

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.
Ja mein ursprünglicher Code ist so aufgebaut.

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.

herrentor 23. Feb 2005 11:25

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:
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;
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?

Sharky 23. Feb 2005 11:28

Re: textdatei sortieren
 
Zitat:

Zitat von herrentor
das problem ist nur, dass es keine festen indizes gibt. es stehen immer unterschiedlich viele einträge unter'm
datum.

Ich sehe einfach das Problem nicht ;-)
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.

herrentor 23. Feb 2005 11:36

Re: textdatei sortieren
 
hast du den befehl für das herauskopieren zwischen datum1 und datum2 vielleicht parat?

Sharky 23. Feb 2005 11:42

Re: textdatei sortieren
 
Zitat:

Zitat von herrentor
hast du den befehl für das herauskopieren zwischen datum1 und datum2 vielleicht parat?

Dafür gibt es keinen "Befehl". Du musst schon etwas dafür Programmieren. Aber das sollte doch kein Problem sein.
Du weisst ja wie eine Textzeile aussieht in der das Datum steht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.
Seite 1 von 2  1 2      

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