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
    SetAt

    damit 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 falsch
    

    Bevor 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 🙄


Anmelden zum Antworten