Zurück   RR:Board > Computer > Programmierung & Entwicklung > Programmier Tutorials

ASP, C/C++/C#, Delphi, Java, Assembler (ASM), .NET Framework
Antwort
 
Themen-Optionen Thema durchsuchen

[C/C++] - [Borland C++ Builder] Mit TStringList-Objekten arbeiten
Alt 04.02.2010, 18:00   # 1
bonsai
Kabel Wurm
rot rot rot 
Bewertung:
bonsai 80k+ RR.Geekpoints
Registriert seit: Jun 2006
Beiträge: 776
Power: 39
[C++ Tutorial für Borland C++ Builder] Mit TStringList-Objekten arbeiten:

Das TStringList-Objekt verwaltet eine Liste, die Strings enthält.


In diesem Tutorial wird folgendes Wissen vorausgesetzt: Mit String-Variablen arbeiten


Um eine bessere Übersicht zu schaffen, sind die folgenden Dinge farblich gekennzeichnet:

TStringList:..... TStringList *<Bezeichner> .= Name des TStringList-Objekts
Strings: .......... String <Bezeichner> ..........= Name der String-Variable
Stringliteral: ..."<Wert>" ...........................= Inhalt des Strings
Integer: .......... int <Bezeichner>
Kommentare
: . // Kommentar



Methoden von TStringList:


TStringList deklarieren:
Code:
TStringList *<Bezeichner> = new TStringList(); // Der Operator 'new' ermöglicht eine dynamische Speicherreservierung // 'new' gibt einen Zeiger auf den zugewiesenen Speicher zurück // Der Operator '*' wird verwendet um einen Zeiger zu erzeugen // Die Methode 'TStringList()' erstellt ein neues TStringList-Objekt /* Beispiel 1: */ TStringList *strList_Test = new TStringList(); // da man mit den Operatoren 'new' und '*' dynamischen Speicher // reserviert hat, muss man diesen immer manuell wieder freigeben! // dafür verwendet man den Operator 'delete' // 'delete' gibt einen Speicherbereich frei, // der durch einen Aufruf von 'new' reserviert wurde // WICHTIG: Der Operator 'delete' wird ohne // den Operator '*' (Zeiger) verwendet! delete strList_Test;
TStringList: Strings hinzufügen, löschen, einfügen:
Code:
// Mit dem Operator '->' kann auf Methoden des TStringList-Objekts // zugegriffen werden // Strings hinzufügen - Rückgabewert (optional) ist die Zeilennummer, // welche den angefügten String enthält // wobei 0 die ersten Zeile bezeichnet; 1 die zweite, usw. (int) <Bezeichner>->Add(<Bezeichner>); (int) <Bezeichner>->Add("<Wert>"); // Strings löschen - Index gibt die Position des Strings an // wobei 0 den ersten String bezeichnet; 1 den zweiten, usw. // Sollte 'Delete' mit einem ungültigen Index-Wert aufgerufen werden // wird eine Exception ausgegeben <Bezeichner>->Delete(<Index>); // alle Strings aus dem TStringList-Objekt löschen <Bezeichner>->Clear(); // Strings einfügen - String an Position Index einfügen // wobei 0 die ersten Zeile bezeichnet; 1 die zweite, usw. // Sollte 'Insert' mit einem ungültigen Index-Wert aufgerufen werden // wird eine Exception ausgegeben <Bezeichner>->Insert(<Index>, <Bezeichner>); <Bezeichner>->Insert(<Index>, "<Wert>");
Beispiele - Strings hinzufügen, löschen:
Code:
/* Beispiel 1: */ String strTest1 = "Hallo", strTest2 = "Welt!"; // Beide Strings dem TStringList-Objekt hinzufügen - ohne Rückgabewert strList_Test->Add(strTest1); strList_Test->Add(strTest2); // Beide Strings dem TStringList-Objekt hinzufügen - mit Rückgabewert int Pos1 = strList_Test->Add(strTest1); int Pos2 = strList_Test->Add(strTest2); // Das TStringList-Objekt sieht dann wie folgt aus: strList_Test: Hallo // Zeilen-Index 0 - Rückgabewert Pos1 = 0 Welt! // Zeilen-Index 1 - Rückgabewert Pos2 = 1 // Die gerade hinzugefügten Strings löschen - manuell // Reihenfolge beachten - sonst bekommt man eine Exception strList_Test->Delete(1); strList_Test->Delete(0); // Die gerade hinzugefügten Strings löschen - mit dem Rückgabewert (Index) // Reihenfolge beachten - sonst bekommt man eine Exception strList_Test->Delete(Pos2); strList_Test->Delete(Pos1); // alternativ - 2x die erste Zeile löschen strList_Test->Delete(0); strList_Test->Delete(0); // schnellste Variante strList_Test->Clear();
Beispiele - Strings einfügen:
Code:
/* Beispiel 2: */ // Stringliterale "Das" und "Beispiel" hinzufügen strList_test->Add("Das"); strList_test->Add("Beispiel"); // Das TStringList-Objekt sieht dann wie folgt aus: strList_Test: Das // Zeilen-Index 0 Beispiel // Zeilen-Index 1 // Stringliterale "ist" (Index 1) einfügen strList_test->Insert(1, "ist"); // Das TStringList-Objekt sieht dann wie folgt aus: strList_Test: Das // Zeilen-Index 0 ist // Zeilen-Index 1 Beispiel // Zeilen-Index 2 // Stringliterale "ein" (Index 2) einfügen strList_test->Insert(2, "ein"); // Das TStringList-Objekt sieht dann wie folgt aus: strList_Test: Das // Zeilen-Index 0 ist // Zeilen-Index 1 ein // Zeilen-Index 2 Beispiel // Zeilen-Index 3
TStringList: nach Strings suchen bzw. prüfen ob vorhanden:
Code:
int <Bezeichner> = <Bezeichner>->IndexOf(<Bezeichner>); int <Bezeichner> = <Bezeichner>->IndexOf("<Wert>"); /* Beispiel 1: */ // prüfen ob "Hallo" im TStringList-Objekt vorhanden ist // 'IndexOf' liefert den Zeilen-Index des Strings als Rückgabewert // ist der String nicht im TStringList-Objekt enthalten, liefert // 'IndexOf' den Wert '-1' als Rückgabewert int iPos = strList_Test->IndexOf("Hallo"); // den Rückgabewert auswerten if (iPos != -1) { // Stringliteral "Hallo" hat den Index iPos } else { // Stringliteral "Hallo" ist nicht im TStringList-Objekt enthalten }
TStringList: Position von 2 Strings tauschen:
Code:
<Bezeichner>->Exchange(<Index1>, <Index2>); /* Beispiel 1: */ strList_Test->Add("4"); strList_Test->Add("5"); strList_Test->Add("3"); strList_Test->Add("1"); strList_Test->Add("2"); // Das TStringList-Objekt vor dem Tausch: strList_Test: 4 // Zeilen-Index 0 5 // Zeilen-Index 1 3 // Zeilen-Index 2 1 // Zeilen-Index 3 2 // Zeilen-Index 4 // Index 0 ("4") und Index 3 ("1") tauschen strList_Test->Exchange(0, 3); // Index 1 ("5") und Index 4 ("2") tauschen strList_Test->Exchange(1, 4); // Das TStringList-Objekt sieht dann wie folgt aus: strList_Test: 1 // Zeilen-Index 0 2 // Zeilen-Index 1 3 // Zeilen-Index 2 4 // Zeilen-Index 3 5 // Zeilen-Index 3
TStringList: Strings sortieren:
Code:
<Bezeichner>->Sort(); // Mit 'Sort' werden die Strings im TStringList-Objekt // in aufsteigender Reihenfolge sortiert /* Beispiel 1: */ // Das TStringList-Objekt unsortiert: strList_Test: 4 // Zeilen-Index 0 5 // Zeilen-Index 1 3 // Zeilen-Index 2 1 // Zeilen-Index 3 2 // Zeilen-Index 4 // TStringList-Objekt sortieren strList_Test->Sort(); // Das TStringList-Objekt sortiert: strList_Test: 1 // Zeilen-Index 0 2 // Zeilen-Index 1 3 // Zeilen-Index 2 4 // Zeilen-Index 3 5 // Zeilen-Index 4


Eigenschaften von TStringList:


Anzahl der Strings im TStringList-Objekt:
Code:
int <Bezeichner> = <Bezeichner>->Count; /* Beispiel 1: */ strList_Test->Add("4"); strList_Test->Add("5"); strList_Test->Add("3"); strList_Test->Add("1"); strList_Test->Add("2"); // Anzahl der Strings im TStringList-Objekt = 5 int iListCnt = strList_Test->Count;
Strings im TStringList-Objekt bearbeiten / abfragen:
Code:
String <Bezeichner> = <Bezeichner>->Strings[<Index>]; (String) <Bezeichner>->Strings[<Index>] = <Bezeichner>; (String) <Bezeichner>->Strings[<Index>] = "<Wert>"; // jeden String im TStringList-Objekt verändern for (int i = 0; i < iListCnt; ++i) { strList_Test->Strings[i] = "Index: " + String(i); } // Das TStringList-Objekt sieht dann wie folgt aus: strList_Test: Index: 0 // Zeilen-Index 0 Index: 1 // Zeilen-Index 1 Index: 2 // Zeilen-Index 2 Index: 3 // Zeilen-Index 3 Index: 4 // Zeilen-Index 4
TStringList: doppelte Strings:
Code:
<Bezeichner>->Duplicates = <Wert>; // Die Eigenschaft 'Duplicates' legt fest, ob zu einer sortierten Liste // String-Duplikate (identische Stringliterale) hinzugefügt // werden können // '<Wert>' legt dabei die Aktion fest, die ausgeführt werden soll, // wenn ein String mehrfach zu einer sortierten Liste hinzugefügt // werden wird /* Beispiel 1: */ // dupIgnore - Der Versuch, der sortierten Liste ein // String-Duplikat hinzuzufügen, wird ignoriert strList_Test->Duplicates = dupIgnore; // dupError - Der Versuch, der sortierten Liste ein // String-Duplikat hinzuzufügen, führt zu einer Exception strList_Test->Duplicates = dupError; // dupAccept - doppelte Strings in der sortierten Liste // sind erlaubt strList_Test->Duplicates = dupAccept;
TStringList: einen einzelnen String durch ein Trennzeichen trennen:
Code:
(char) <Bezeichner>->Delimiter = '<einzelnes Zeichen>'; // Trennzeichen // Die Eigenschaft 'DelimitedText' stellt alle Strings im TStrings-Objekt // in einem einzigen String dar. // Durch Zuweisung eines Strings kann dieser getrennt werden und // wird somit in einzelne Strings zerlegt (String) <Bezeichner>->DelimitedText = <Bezeichner>; /* Beispiel 1: */ // Trennzeichen = ',' (Komma) strList_Test->Delimiter = ','; // String zum Zerlegen - getrennt durch das Trennzeichen (Delimiter) String strCut = "Das,ist,ein,Beispiel"; // String zerlegen strList_Test->DelimitedText = strCut; // Das TStringList-Objekt sieht dann wie folgt aus: strList_Test: Das // Zeilen-Index 0 ist // Zeilen-Index 1 ein // Zeilen-Index 2 Beispiel // Zeilen-Index 3
TStringList: Strings im Format "Bezeichner=Wert" (INI-Datei):
Code:
// Bezeichner (den Teil des Strings vor dem '=') in // Zeile <Index> ermitteln String <Bezeichner> = <Bezeichner>->Names[<Index>]; // Wert (den Teil des Strings nach dem '=') auslesen String <Bezeichner> = <Bezeichner>->Values["<Name des Bezeichners>"]; /* Beispiel 1: */ // Das TStringList-Objekt sieht wie folgt aus: strList_Test: Test1=a // Zeilen-Index 0 Test2=b // Zeilen-Index 1 Test3=c // Zeilen-Index 2 // Bezeichner auslesen String strBezeichner1 = strList_Test->Names[0]; // = Test1 String strBezeichner2 = strList_Test->Names[1]; // = Test2 String strBezeichner3 = strList_Test->Names[2]; // = Test3 // Werte auslesen - manuell String strWert1 = strList_Test->Values["Test1"]; // = a String strWert2 = strList_Test->Values["Test2"]; // = b String strWert3 = strList_Test->Values["Test3"]; // = c // Werte auslesen - mit den ermittelten Bezeichnern String strWert1 = strList_Test->Values[strBezeichner1]; // = a String strWert2 = strList_Test->Values[strBezeichner2]; // = b String strWert3 = strList_Test->Values[strBezeichner3]; // = c // nur um es genauer zu zeigen String strGesamt = strWert1 + strWert2 + strWert3; // = abc


Ich hoffe das Tutorial hat euch geholfen!

ͼô.ôͽ <- da ist Fr3Dchen. {ô.Ô} <- da ist Speck drum. <8D~ <- da ist Fedjamaus.
OᴖO <- da ist Stalker. ^.- <- da ist Crazy. (ȏ) <- da ist Chief's Donut. ûdô <- da ist Udo.
DUÜM Rekord: 2.140 / 10.000 Posts by Dr. Laz. Fauli
  bonsai ist offline   Mit Zitat antworten
Antwort

RR:Board > Computer > Programmierung & Entwicklung > Programmier Tutorials > [C/C++] - [Borland C++ Builder] Mit TStringList-Objekten arbeiten


Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir erlaubt, Anhänge anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[C/C++] - [Borland C++ Builder] Mit String-Variablen arbeiten bonsai Programmier Tutorials 0 19.01.2010 11:56
Borland c++ builder 6 Both Programmierung & Entwicklung 9 17.06.2006 19:14
Borland Builder wunderk1nd Programmierung & Entwicklung 1 05.05.2006 19:02
Borland C++ Builder zodiake Programmierung & Entwicklung 3 03.12.2005 08:23
Borland C++ Builder 6 mdfx Programmierung & Entwicklung 2 07.11.2005 18:57



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:29 Uhr.
vBulletin Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.