String aus einem String holen
-
Gutrn Tag allerseits
ich habe folgendes Problem
Ich möchte eine Datei Zeilenweise auslesen und in jeder Zeile nach einem bestimmten attribut suchen. (Bis hier kein Problem)Jetzt brauch ich noch den Namen des attributes welcher ja variabel ist.
Wie mach ich das am besten.
Eine Zeile der Datei kann wie folgt aussehen:At,"Name",x,x,x
Schon mal Danke
Mfg Rion
-
ja wenn das variable immer in " steht kannst ja den String durchsuchen nach den " und dann dazwischen auslesen, da es dazu aber viele Möglichkeiten gibt nimm einfach mal die MSDN und gib mal im Reiter Index CString ein da findest unter anderem CString as an array und CString find schau da mal durch und wenn du dann noch fragen hast meld dich wieder
-
Ja das ist mir aber irgendwie alles zu umständlich
und mit Positionsangaben kann ich auch nicht arbeiten.
Gibt es den keine Funktion der ich sagen kann nimm das zwischen den " ???
-
Servus,
benutz doch dafür Reguläre Ausdrücke:
http://www.codeproject.com/string/use_regular_expression_in_your_program.asp
Unter google mal nach Regular Expression suchen, dann findest du eine Menge Erklärungen zu den Parametern etc....
mfg
Hellsgore
-
was ist daran bitte umständlich das ist ne FKT mit vieleicht 10 Zeilen also soviel Umstand kann man sich schon mal gönnen. Vielleicht noch ein kleiner Denkanstoß deinString.Find " deinString.getright deinString.Reversefind " deinString.getLeft 4 Zeilen! Geht bestimmt auch noch kürzer!!
-
Noch einfacher!
deinStr = "At,\"Name\",x,x,x"; deinStr.TrimRight('"'); deinStr.TrimLeft('"');
Grundsätzlich 2 Zeilen!! immernoch zu umständlich??
-
Polofreak schrieb:
Noch einfacher!
Einfacher ist es. Funktioniert aber nicht. Manchmal ist Testen besser als multiple Satzzeichen
CString NimmDasZwischenDenAnfuehrungszeichen(const CString& s) { int q1 = s.Find('\"'); return s.Mid(q1 + 1, s.ReverseFind('\"') - q1 - 1); }
-
Ok ok
ich programmier noch nicht so lang mit c++ und ich dachte es gibt vielleicht schon eine Funktion die das machtViellen Dank für eure Hilfe
-->Ich mach des dann zu Fuß, wo bleibt auch sonst der Spass am Programmieren
-
@mfk OK OK vielleicht funktioniert es nicht,, aber multiple Satzzeichen sind geil!!
Nein mal im ernst ich wollte ihm ja auch nur Möglichkeiten klar machen, und ich denk dass man mit meiner oben skizzierten Möglichkeit weiter kommen kann, vielleicht nicht mit exakt dem Source aber ich will ja auch nicht für ihn programmieren ich will ihm ja nur helfen Ideen zu finden wie man es machen könnte!
-
Rion schrieb:
Ok ok
ich programmier noch nicht so lang mit c++ und ich dachte es gibt vielleicht schon eine Funktion die das machtViellen Dank für eure Hilfe
-->Ich mach des dann zu Fuß, wo bleibt auch sonst der Spass am Programmieren
Der Vorteil daran ist das der Code wiederverwendbar ist.
Schreibst du also die wenigen Zeilen dann brauchst du beim nächsten mal nicht fragen ob es so eine Funktion gibt da du sie schon hast.