Aus einen String nach einen best. namen...
-
Wie kann man aus einen String nach einen best. namen eine Zahl auslesen
Der best. Name ist immer gleich z.B. DATA_234.
-
Hi,
indem Du mit string.Find("_") dir die Position des Trennzeichens Dir zurückgeben läßt, dann alles bis nach _ löscht und schon hast Du die Zahl.
-
Und was mach ich wenn ich nach der Zahl einen Wert habe zB.
DATA_234ms
-
Ist die Zahl immer 3-stellig ?
-
Nein sie hat 1 bis 5 Stellen.
-
Okay,
die Klasse CString bietet so viele Möglichkeiten z. B. ReversFind(Suche von Rechts) oder FindOneOf, oder TrimRigth. Da musst du mal ein bischen rumprobieren.
-
CString mystring("fnlksdnl DATA_42432d fndklfnds"); int pos = mystring.Find("DATA_"); if(pos >= 0) { int val = _ttoi(static_cast<LPCTSTR> (mystring) + pos + 5); // ... }
5 ist die Länge von "DATA_". ggf. durch strlen o.ä. ersetzen.
[ Dieser Beitrag wurde am 21.01.2003 um 17:38 Uhr von Nemesyzz editiert. ]
-
Danke an alle!!!
Habe selber ein bisschen probiert und den code
hier entwickelt.CString zahl1,zahl2,zahl3; int x,y,z,z1,count; x =zahl1.GetLength(); //68 Zeichen y = zahl2.Find("ms"); //62 Zeichen z = zahl2.Find("DATA_"); //52 Zeichen count=x-y; //68-62=6 Zeichen zahl1.Delete(y,count); z1 = zahl3.Find("_"); zahl1.Delete(z1,z+count); //zahl1 ist die Zahl die gesucht wird.