Fehlermeldung bei StringList
-
Hallo,
ich möchte mehrere Strings aus verschiedenen StringLists (definiert als Feld: TStringList *weitereBedeutungen[100]) in einem Edit anzeigen. Habe es mal so versucht:
for (int i=0; i<AnzahlBedeutungen->Strings[Fremdsprache->Count]; i++)
{
Edit3->Text = weitereBedeutungen[i]->Strings[Fremdsprache->Count];
}Bei mir kommt dann immer eine Fehlermeldung "Listenindex außerhalb des zulässigen Bereichs".
Hat irgendjemand eine Idee, wo hier das Problem steckt und wie ich es lösen kann?
Vielen Dank im Voraus
P.S.: Bin C++-Anfänger. Bitte nicht zu komplizierte Erklärungen
-
for (int i=0; i<AnzahlBedeutungen->Strings[Fremdsprache->Count]; i++)
du kannst nicht sagen i<String.
i muss kleiner sein als ein anderer int.
d.h.for (int i=0; i<AnzahlBedeutungen->Count; i++)
-
Danke für den Hinweis.
Es muss so heißen:
for (int i=0; i< StrToInt (AnzahlBedeutungen->Strings[Fremdsprache->Count]); i++)
{
Edit3->Text = weitereBedeutungen[i]->Strings[Fremdsprache->Count];
}Trotzdem erscheint immer noch die gleiche Fehlermeldung ("Listenindex außerhalb des zulässigen Bereichs")
Für weitere Ratschläge wäre ich dankbar.
-
Das hier
weitereBedeutungen[i]->Strings[Fremdsprache->Count];
sieht doch sehr merkwürdig aus. Wie kommst du darauf, dass die Liste weitereBedeutungen[i] mindestens Fremdsprache->Count Strings enthält? Geh doch einfach mal mit dem Debugger durch und schau dir an worauf du zugreifen willst und wieviel Elemente in deiner Stringlist sind.
-
weitereBedeutungen[i] enthält auf jeden Fall genauso viele Strings wie Fremdsprache, das habe ich schon nachgeprüft. Daran liegt es nicht. Also, mein eigentliches Problem liegt darin, wie ich mehrere Strings aus verschiedenen Stringlisten in einen einzigen String bekomme, damit ich diesen dann in einem Label oder einem Edit anzeigen kann.
Für einen Lösungsvorschlag wäre ich dankbar.
-
sceche schrieb:
weitereBedeutungen[i] enthält auf jeden Fall genauso viele Strings wie Fremdsprache, das habe ich schon nachgeprüft. Daran liegt es nicht.
Eben doch, da die Zählung mit 0 beginnt greifts du hier auf ein Element zu weit zu.
-
Hatte das auch mal.
Problem lag glaube daran das du zählst von 0 bis zb 100
Count gibt dir die Anzahl der strings an. Somit überschreitet i die Anzahl der Strings um 1.
oder so ähnlich.
-
Vielen Dank
Wenn ich jetzt statt
Fremdsprache->Count
Fremdsprache->Count-1
nehme funktioniert es. Allerdings wird immer nur der letzte String von weitereBedeutung[100] angegeben, was ja auch logisch ist. Gibt es für String eine Methode womit man einen vorhandenen String verlängern bzw. etwas hinzufügen kann? In etwa vergleichbarmit der Methode "Add" bei StringList?
Über weitere Ratschläge würde ich mich freuen
-
Meine Problem hat sich erledigt.
mit
String1 = String1+weitereBedeutungen[i]
geht das problemlos
Ich bedanke mich für die Ratschläge
-
warum eigentlich ein Array von Stringlisten? Die Stringliste ansich ist ja schon ein Stringarray und das willst du ja offensichtlich haben.
greetz KN4CK3R