Einen Array aus einem String hohlen
-
Hi, gibts sowas ähnliches wie der Befehl explode in PHP nur für C++?
Also explode splintet den String nach dem ersten parameter in einen Array auf. Also explode(";","1;2") würde mir halt die zwei zahlen da in nen Array packen. Ich hab noch nie in C++ mit arrays gearbeitet muss ich gestehen, desswegen hab ich auch keine Ahnung was das betrifft.
Meine Alternative währe natürtlich LastDelimiter und SubString. Aber das will irgendwie auchnicht so richtig.AnsiString Taetigkeiten="test;test;test"; while (Taetigkeiten.Pos(";")) { iPos = Taetigkeiten.LastDelimiter(";"); Taetigkeiten = Taetigkeiten.SubString(1, iPos - 1); ShowMessage(Taetigkeiten.SubString(iPos + 1,Taetigkeiten.Length() - iPos)); TaetigkeitenCheckListBox->Items->Add(Taetigkeiten.SubString(iPos + 1,Taetigkeiten.Length() - iPos)); }
Wat isn daran falsch?
-
Naja. Du holst dir erst die Position des letzten ";". Dann "loeschst" du alles nach diesem. Dann gibst du einen Teilstring aus, der nicht existiert, weil alles nach "iPos" "geloescht" wurde.
Ich denke, es muesste eher so aussehen:AnsiString Taetigkeiten="test;test;test"; while( Taetigkeiten.Pos( ";" ) > 0 ) { int iPos = Taetigkeiten.LastDelimiter( ";" ); AnsiString Teil = Taetigkeiten.SubString( iPos+1, Taetigkeiten.Length() - iPos + 1 ); ShowMessage( Teil ); TaetigkeitenCheckListBox->Items->Add( Teil ); Taetigkeiten.Delete( iPos, Taetigkeiten.Length() - iPos + 1 ); }
MfG Aoeke
-
Alles Klar, danke. War noch ein Kleiner Fehler drinne, er hat nur die 2 letzten Strings angezeigt musste hinter der while-schleife das nochmal adden.