TStringList

Grundlegendes
Der Inhalt einer TStringList Komponente
ist vergleichbar mit TListBox
(nur das diese keine visuelle Komponente ist, also nicht auf
einem Form platziert wird). TStringlist muss wie eine
Variable für jede
Procedure deklariert werden.
Die Aufzählung der Zeilen beginnt
mit 0, also die erste Zeile ist 0 die zweite Zeile 1 die dritte
Zeile 2 und so weiter... Jede einzelne Zeile für sich betrachtet ist
ein einfacher String Ergo, (var
SList: TStringList;) SList.[0]
ist die erste Zeile der TStringList SList "und quasi ein String",
demzufolge gelten auch alle Operationen die für einen String
gelten >
siehe Stringoperationen. Tausche dazu einfach das "S" in den
Beispielen durch SList.[X]
(wobei
X die Zeile der SList ist).
Bevor jedoch ein TStringList verwendet werden kann muss diese
mit Name := TStringList.Create; "geöffnet" und nach
benutzung sollte sie wieder mit Name.free; "geschlossen"
werden.
Länge des Textes in einer
TStringList Zeile ermitteln >
siehe Stringoperationen
Inhalt eines in einer
TStringList Zeile
zurechtschneiden >
siehe Stringoperationen
Nach einem Zeichen oder
Teilstring in einer TStringList Zeile suchen >
siehe Stringoperationen
Zuweisen von Text
| |
var
SList: TStringList;
S:
String;
SList := TStringList.Create;
SList.Add ('ich
bin ein TEdit');
// oder SList.Add.Add(S);
SList.free; |
Auslesen
einer Zeile
| |
var
SList: TStringList;
S:
String;
SList := TStringList.Create;
Edit1.Text := SList[0]
// liest den Inhalt der ersten Zeile in Edit1
S
:=
SList[1]
// liest den Inhalt der zweiten Zeile in die Variable S
SList.free; |
Zuweisen einer Integer - Zahl (
var Zahl: Integer; )
[sieh auch >
Umwandeln von Variablen]
| |
var
SList: TStringList;
S:
String;
SList := TStringList.Create;
SList.Add(IntToStr(Zahl));
SList.free; |
Zuweisen mehrerer Zeilen
| |
var
SList: TStringList;
Variable:
String;
SList := TStringList.Create;
SList.Add('erste
Zeile');
SList.Add('zweite
Zeile');
SList.Add(('dritte
Zeile')+(Variable));
SList.Add(Variable);
SList.SaveToFile('Datei.txt');
// dann kann man das ganze noch in einer Datei Speichern
SList.free;
|

Eintrag nur dann hinzufügen wenn dieser nicht vorhanden ist
(
var S:
String; SList: TStingList;)
| |
S := ('hinzufügen
wenn nicht bereits enthalten');
if
SList.IndexOf(S) = -1
then
SList.Add(S); |

Löschen einer Zeile (
var SList: TStingList;
// Create und Free nicht vergessen )
| |
SList.Delete(0);
//löscht die erste Zeile |

Kompletten Inhalt löschen (
var SList: TStingList;
// Create und Free nicht vergessen )
| |
SList.Clear;
//löscht alle Zeilen |

Doppelte Einträge löschen (
var SList: TStingList;
// Create und Free nicht vergessen )
| |
begin
x :=
0;
while x <= SList.count
-
2
do
begin
for i := x + 1
to SList.count - 1
do
begin
if
SList[x] = SList[i]
then
begin
dec(x);
SList.delete(i);
break;
end;
end;
inc(x);
end;
end;
// Quelle www.delphipraxis.net
|

Suchen nach Eintrag (
var SList: TStingList;
// Create und Free nicht vergessen )
| |
var
Zeile:
String;
Zeile := SList.IndexOf('Suchwort')
// wird ‚Suchwort’ nicht als Eintrag (komplette Zeile) in
ListBox1 gefunden ist der Ausgabewert in Variable Zeile -1
// wird ‚Suchwort’ in ListBox1 gefunden, enthält die Variable
Zeile die erste Zeile in der ‚Suchwort’ gefunden wird
|

Inhalt aus Datei laden (
var SList: TStingList;
// Create und Free nicht vergessen )
| |
SList.LoadFromFile('Datei.txt');
// hier wäre es angebracht die Anweisung in ein "try except" zu
packen > sieh hier |
Inhalt in Datei speichern (
var SList: TStingList;
// Create und Free nicht vergessen )
| |
SList.SaveToFile('Datei.txt');
// hier wäre es angebracht die Anweisung in ein "try except" zu
packen > sieh hier
SList.Items.SaveToFile('Datei.txt',
TEncoding.ASCII);
// in ASCII Zeichenkodierung
SList.Items.SaveToFile('Datei.txt',
TEncoding.UTF8);
// in UTF8 Zeichenkodierung |

Anzahl der Zeilen ermitteln (
var SList: TStingList;
// Create und Free nicht vergessen )
| |
var
Zeilen: Integer;
Zeilen := SList.Count; |

|