Hi Daywalker299!
Ganz einfach: Es wird zum Beispiel die TStringList mitgeliefert. Als erstes schreibst du ein paar Funktionen um komfortabel auf eine PipeStringListe zurück zu greifen. Z.B. PipeStrItem, PipeStrCount, PipeStrSetItem. Dann initialisierst du eine Liste mit TStringList. Wenn du eine Sortierung haben möchtest, kannst du auch indexbasierte PipeStrings nehmen.
|CWortC|ADasA|BdritteB|
Hier gehst du mit "Pos('|A',String)" drauf. Dann suchst du mit "Pos('A|',String)" das Ende und berechnest die Menge. Dann host du die Daten mit Copy raus und gut. Bei mir heißt die Funktion PipeVarStrItem und hier ein Beispiel:
Code:
Const Inhalt = '|CWortC|ADasA|BdritteB|';
Var lSt : String;
lCh : Char;
Begin
lSt:='';
For lCh:='A' To 'C' Do
Begin
If lSt > '' Then
lSt:=lSt + ' ';
lSt:=lSt + PipeVarStrItem(Inhalt,lCh);
End;
ShowMessage(lSt);
End;
Klar ist das ein bißchen Aufwand. Man MUSS nur als erstes ein paar Grundfunktionen schreiben. Noch gleiler wird das in Listboxen. Hier zeichnest du den Inhalt selber und kannst dabei schon zu Ausgabe darauf achten, daß aus 'A' links und aus 'B' rechts in der Listbox ausgegeben wird. In Feld 'C' könnten noch parameter wie Satzposition stehen. Strings könne einige GB groß werden, sollte reichen.
Eine andere schöne Möglichkeit die Daten zu speichern, ist mit Typisierten Dateien. Das leidige bei größeren Datenmengen ist nur, daß du einen Index führen mußt. Klar,
DB bringen das gleich mit, richtig debuggen kann man die Datenbanken aber nicht. Ich bin übrigens kein Freund der Datenbanken, ich möchte wissen was passiert. Für Indexe habe ich mir übrigens ein Object geschrieben, mit dem ich einen Binärbaum verwalte.
Genug meiner alten Ansichten.
Jammert mir keiner die Ohren voll, daß die blöden Dinger kaputt gehen.