eintragen in listbox



  • Hallo,

    ich habe ein Listfeld, in das ich den inhalt eines Editfeldes eintrage.

    CListBox* pBox = (CListBox*) GetDlgItem(IDC_List); 
    	pBox->InsertString(-1, m_strinhalt);
    

    Jetzt kann es aber mal vorkommen das in dem Editfeld nichts steht, ausser vielleicht eine unbestimmte anzahl an Leerzeichen. Diese möchte ich aber nicht eintragen in das Listfeld. Wie kann ich das umgehen das die Leerzeichen mit eingetragen werden???
    Mit einer if anweisung ist es schwer die unbestimmte länge der leerzeichen auszuschliessen, zumindest wüsste ich nicht wie.
    Kann mir jemand helfen.
    Schonmal danke



  • Schau dir mal die Members von CString an, da gibt es Trim-Funktionen. 🙂



  • So:

    CString before;
    	CListBox* pBox = (CListBox*) GetDlgItem(IDC_List); 
    	m_strinhalt.TrimRight(before);
    	m_strinhalt.TrimRight(' ');
    
    	pBox->InsertString(-1, m_strinhalt);
    
    	speicherntxt();
    
    	m_strinhalt = " "; 
    	before = m_strinhalt;
    
    	UpdateData(false);
    

    Jetzt habe ich noch hinzugefügt wen der inhalt dem davorrigen gleicht soll er diesen auch entfernen.
    Aber er trägt noch immer leere zeilen in die listbox ein.



  • @estartu_de: man kann es aber auch leicht selber machen 😉

    und zwar so:

    CString cTemp;
    
    for (int i = 0; i < m_strinhalt.GetLength(); i ++)
    {
        if (m_strinhalt.GetAt(i) != ' ')
            cTemp += m_strinhalt.GetAt(i);
    }
    

    dann hatste in deinem string den inhalt ohne leerzeichen.
    wenn du nur leerzeichen in deiner EditBox hättest, und dann eigentlich nichts einfügen wilst, fügst du den inhalt deines cTemp -strings nur ein wenn die länge von cTemp > 0 ist



  • Tja, du musst natürlich noch abfragen, ob der String nun leer ist und nur anhängen, wenn was drin steht. 🙄

    Außerdem wird das, was du mit "before" vor hast nicht funktionieren, nicht so wie du da geschrieben hast. Überleg mal mit "Gültigkeiten / Lebensdauer von Variablen" als Hintergrund. 🙂

    @Red Skall: Ich bin faul, warum soll ich das nochmal machen, wenn das schon einer gemacht hat. 😉



  • jo, du bist faul :D;)
    aber ist doch schön, wenns läuft ohne fremde funktionen zu benutzen, oder ?? da kann man noch was lernen wenn man selber gerne rumprobiert


Anmelden zum Antworten