Mein explodeSP() (explode bei space) macht Blödsinn
-
Christian211 schrieb:
Es gibt nicht die Möglichkeit ein Array von Strings als AnsiString[] anzulegen.
Wieso nicht?
AnsiString moep("Hallo"); AnsiString huhu[] = { moep };legt ein statisches Array von AnsiStrings der Länge 1 an. Also liegt in huhu[0] der String "Hallo". Auf das erste Zeichen greift man dann mit huhu[0][1] zu (hier "H").
-
Naja, da ist die Verwendung von TStringList doch einfacher und vor allem weniger empfindlich, was Logikfehler betrifft...

-
Dagegen sagt ja keiner was. Ich wollte nur Christian widersprechen.

Wobei ich STL-Klassen bevorzuge wenn TStringList nicht unbedingt benötigt wird. Einfach weil die eine ähnliche Funktionalität anbieten, man aber nicht unbedingt einen Pointer braucht.
-
Ich wollte nur Christian widersprechenTja, dass war/ist mir neu -> habe das auch allerdings nie probiert, da ja TStringList vohanden ist
-
guck doch in den quellcode von php und schau wie es dort gemacht wird...

-
Wenn TStringList (und BCB6), dann lässt sich sowas ganz gut mit Delimiter und DelimitedText erledigen.
-
Braunstein schrieb:
Christian211 schrieb:
Es gibt nicht die Möglichkeit ein Array von Strings als AnsiString[] anzulegen.
Wieso nicht?
AnsiString moep("Hallo"); AnsiString huhu[] = { moep };legt ein statisches Array von AnsiStrings der Länge 1 an. Also liegt in huhu[0] der String "Hallo". Auf das erste Zeichen greift man dann mit huhu[0][1] zu (hier "H").
Also ich danke erstmal all den vielen die geantwortet haben. Was ich noch hinzufügen will, ist, dass ich auf meiner jetzt ja als falsch erkannten Idee mit AnsiString erst beharrte weil ich nach der eingabe von "Hallo ich bin text"
huhu[0] => "Hallo"
huhu[1] => "o ic"
usw. bekommen habe. GAAAAANZ ehrlich
Werde aber jetzt die TStringList Variante ausprobieren. Achso in der BCB-Hilfe - die mich immer wieder begeistert, bin ich wieder auf ein Verständnisproblem meinerseits gestoßen.... die einzelnen Strings... findet man die dann unter
strList->Values[0]
usw. ?
-
unter
strList->Strings[0];
-
Dann senfe ich hier auch mal was rein.
Ich habe soetwas neulich auch benötigt, allerdings wird bei mir beim trennzeichen "|" getrennt, und nicht beim leerzeichen.String s= "ich|bin|ein|String"; int durchlauf = 1, akt_pos = 0; String s_neu[100]; while (durchlauf <= s.Length()) { if ((String)s[durchlauf] == (String)"|") { akt_pos++; durchlauf++; } else { s_neu[akt_pos] +=s[durchlauf]; durchlauf++; } }damit bekommt man dann:
s_neu[0]: "ich"
s_neu[1]: "bin"
s_neu[2]: "ein"
s_neu[3]: "String"mfg
Raimond
-
Oklino schrieb:
Was ich noch hinzufügen will, ist, dass ich auf meiner jetzt ja als falsch erkannten Idee mit AnsiString erst beharrte weil ich nach der eingabe von "Hallo ich bin text"
huhu[0] => "Hallo"
huhu[1] => "o ic"
usw. bekommen habe. GAAAAANZ ehrlich
Das ist auch weiter nicht verwunderlich. huhu[1] zeigt auf irgendeine Speicherstelle und da steht natürlich auch irgendwas (mit Betonung auf "irgendwas"). Du darfst diesen index aber nicht verwenden da dein Array nur die Größe 1 hat und ein Zugriff auf diesen Index undefiniertes Verhalten erzeugt.