AnsiString.Pos
-
Nein.
Außerdem veränderst du deinen Orginalstring. Wenn du das nicht willst, mußt du eben kopieren.
-
Außerdem veränderst du deinen Orginalstring
Öhm Nö.Brauchst du nichts verändern. Verändern tust du den mit einem delete.
-
Ungefähr so:
int i=1; while(--pos) i+=src.SubString(i,src.Length()-i).Pos(":"); src.SubString(i,src.SubString(i,src.Length()-i+1).Pos(":")-1);
-
Ok.Fairerweise die std::string Variante.
int x=-1; while(pos--) x=source.find(sep,x)+1; source.substr(x,source.find(sep,x)-x);
-
Kannst du mir mal verraten, was dein Code bewirken soll?
Wozu dient bei dir das pos? Wo und wie wird es initialisiert? Was soll das substr bewirken, wenn du das Ergebnis nicht speicherst?
-
Hallo
Außerdem sollte die std::string-variante eben nicht mit substr arbeiten sondern an find immer die Position des letzten Fundes übergeben. Dann muß gar nichst mehr kopiert werden.
bis bald
akari
-
also die Lösungen von Braunstein gehen beide, die habe ich auch verstanden und
kann sie auch erweitern.Performance ist bei dem was ich mache sicher noch kein Thema.
Die Lösung von pflox verstehe ich weder noch bekomme ich sie zum Laufen.Gruß
-
Hallo
Wie braunstein schon sagte sind pflox letzte Varianten fehlerhaft.
bis bald
akari
-
akari schrieb:
Hallo
Wie braunstein schon sagte sind pflox letzte Varianten fehlerhaft.
bis bald
akariFalsch.
Nicht fehlerhaft, sondern nur zum verfollständigen.
Soviel Vorstellungsvermögen hätte ich Braunstein und akari eigentlich zugetraut.
Naja.pos ist die Position des durch Trennzeichen getrennten Teilstring aus dem Gesamtstring.
string source="a;b;c;d;"; int pos=2;//2. Position (b) char sep=';'; int x=-1; while(pos--) x=source.find(sep,x)+1; cout << source.substr(x,source.find(sep,x)-x);
-
Das hat nichts mit fehlenden Vorstellungsvermögen zu tu. Code zu posten der nicht funktioniert ist einfach Unsinn. Wenn ein Code zum Denkanstoss dienen soll schreibt man das dazu. Immerhin ist dieser Code nicht für akari und mich gedacht gewesen. Wir können das nämlich schon.
-
Code zu posten der nicht funktioniert ist einfach Unsinn.
Dann sind also der großteil eurer Post's deiner Ansicht nach Unsinn.
Danke für das Gespräch.
-
Eigentlich wollte ich nur was wissen und hier keinen Streit auslösen!
Dennoch interessiert mich der letzte Code auch, aber den bekomme ich auch
nicht kompiliert.
Was für eine string ist das? Wenn ich std::string benutze kann ich kein Edit damit füllen weil stl::string nicht nach AnsiString gewandelt werden kann und wenn ich nur String benutze, gibt es kein 'find'.Vielleicht gib es ja eine friedliche Lösung
-
std::string source="a;b;c;d;"; int pos=2;//2. Position (b) char sep=';'; int x=-1; while(pos--) x=source.find(sep,x)+1; AnsiString wert = source.substr(x,source.find(sep,x)-x).c_str();