Fehler bei Code mit AnsiString und String
-
Wozu hast du in deinem Konstruktor überhaupt ein return?
-
Möchte den TYP string nehmen, aber wie kann ich diesen dann trennen.
Das return ist nur zum Beispiel da, wird später noch geändert.
-
Hallo
schau dir string.substr an. funktioniert genau so wie String.SubString, nur das die Zählung bei 0 anfägt.
bis bald
akari
-
Dann musst du deine Trennfunktion ein wenig umarbeiten.
Also:
statt String string nehmen.
statt source.Length() source.size() oder source.length() nehmen
statt source.SubString() source.substr() nehmen[edit]dar war wohl jemand schneller
[/edit]
-
das habe ich ja in meiner Funktion StringTrennen benutzt.
-
wenn ich dies ändere bekomme ich diese Fehlermeldungen:
[C++ Fehler] IP.cpp(18): E2316 'size' ist kein Element von 'AnsiString'
[C++ Fehler] IP.cpp(27): E2316 'substring' ist kein Element von 'AnsiString'String StringTrennen(String &source,char del,int pos) { int x=0,oldpos=1; while(x++<=source.size()) { if(source[x]==del) { if(--pos) oldpos=x+1; else break; } } return source.substring(oldpos,x-oldpos); }
-
Du sollst ja auch string statt String verwenden (Gross/Klein-Schreibung beachten).
String ist ein typedef auf AnsiString
string ist aus der stl
natürlich auch substr statt substring.
Schau dir doch einfach mal die Hilfe zu string an (genauer gesagt zu basic_string).
-
Danke für die Hilfe jetzt funktioniert es:
string StringTrennen(string &source,char del,int pos) { int x=0,oldpos=0; while(x++<=source.size()) { if(source[x]==del) { if(--pos) oldpos=x+1; else break; } } return source.substr(oldpos,x-oldpos); }
-
Habe noch ein kleines Problem wie kann ich das hinbekommen:
string text = "123"; int zahl; zahl = StrToInt(text) ;Habe gehört, dass das irgenwie mit so etwas funktionieren sollte:
AnsiString::c_str()aber wie
-
Wie gesagt lies dir die Hilfe zu basic_string durch.
In diesem Fall hilft dir z.Bsp. zahl = StrToInt(text.c_str())
oder du konvertierst deinen string mit einer anderen Routine in eine Zahl.
Siehe dazu auch diesen Beitrag