CString bearbeiten
-
Hallo!
Kann mir vielleicht jemand sagen, wie ich einzelne buchstaben eines CStrings erfassen kann und diese dann auch ändern kann?
Vielen Dank schon mal
Grüße
Hansi
-
-> CString::Mid
s.a. "CString Class Members" in der MSDN.
-
verstehe nicht was CString::Mid damit zutun hat? operator [] ist dazu überladen oder man nimmt CString::GetAt und um einzelne Buchstaben zu ändern - CString::SetAt oder den [] operator
-
Mit
CString::Find(...) kannst du nach bestimmten Zeichenketten suchen.
Und mit Replace(...) ersetzen glaub ich.Aber in der MSDN steht sicher mehr
-
Mit Replace ersetzt Du aber alle Chars die dem zu Ersetzenden entsprechen
CString strTest="Hallo"; strTest.Replace('l','t'); ASSERT(strTest=="Hatto");Find
GetAt
SetAtdamit bist du sicherlich gut davor.
-
CString::Delete(...);
-> kann auch sehr praktisch sein
-
...oder um auf dein Problem ausm ICQ zurückzukommen
CString sDate, sBuffer, sDay; sDate = "05.08.2003"; int iPos = sDate.Find('.'); sBuffer = sDate; sDate.Delete(iPos,sDate.GetLength()-1); int iDay = atoi(sDate); iDay++; sDay.Format("%i",iDay); if(sDay.GetLength() == 1) sDay.Format("0%i",iDay); sBuffer.Delete(0,iPos); sDate.Format("%s%s",sDay,sBuffer); MessageBox(sDate);Versuch das Ganze aber bitte auch zu versthen, ok

-
Hi,
meine Frage passt zwar nicht so 100%ig mit den vorherigen Posts überein, aber ich denke der Titel passt ganz gut
Ich habe ein Problem beim formatieren einer Zahl die in einem String steht.
Mal hoffen das dieses überhaupt so möglich ist.
Hier mal mein Code:CString szPreis=HAG[sIdxHAG].GetPreis(); szPreis.Format("%4.2f"); //hier ist bestimmt was falschBevor ich die Formatierung durchführe steht in szPreis '5.0000'
Da ich aber nur 2 Nachkommastellen haben will, hab ich es mal mit obiger Formatierung ausprobiert. Allerdings verschwindet bei meiner Variante der Inhalt, sprich nach der Formatierung steht in szPreis ' 0.00'.
Jetzt wüsste ich gerne ob man es doch irgendwie hinbekommen kann meinen String korrekt zu formatieren?
Vielen Dank
Thomas
-
So geht's nicht.
Du kannst entweder nach dem '.' suchen und dann alles bis auf die 2 Kommastellen mit Delete abschneiden.Oder du benutzt vorher atof um eine float-Zahl zu erhalten, dann kannst du es mit Format machen.
-
ok, thx. werde es also umwandeln

-
Hehe
