Eingabefeld 3 Fragen



  • So kannst du Zeilen in die ListBox einfügen :

    CListBox* pBox = (CListBox*) GetDlgItem(ID_DEINER_LISTBOX);
    
    pBox->InsertString(-1, "Hier der Text ...!");
    
    oder
    
    pBox->AddString("Hier der Text");
    

    Gruß
    :: NoName ::



  • Ja super das klappt

    danke



  • Mal ne ganz doofe frage

    wie bekomme ich diesen Scrollbalken am boden entlang.

    Habe eben in den Eigenschaften der Listbox alles ausprobiert, aber wahrscheinlich die falsche kombinations..



  • Noch mal was:

    CString in;
    	CStdioFile pfade;
    	CString pfad= "..\\Listen\\docpfade.txt";
    
    	if (pfade.Open(pfad,CFile::modeReadWrite))
    	{	
    
    		UpdateData(true);
    		pfade.WriteString(m_strlisten);
    
    	}
    

    Fehler

    'WriteString' : Konvertierung des Parameters 1 von 'class CListBox' in 'const char *' nicht moeglich

    Hat jemand einen tipp wie ich den Inhalt der ListBox am ende speichere in ein txt?
    DAnke



  • Du kannst nicht einfach die Variable der ListBox in die TXT schreiben. Du musst die ListBox erst durchlaufen und dann jede einzelne Zeile speichern :

    CString in; 
        CStdioFile pfade; 
        CString pfad= "..\\Listen\\docpfade.txt"; 
    
        if (pfade.Open(pfad,CFile::modeReadWrite)) 
        {
             for(int i = 0; i < m_strlisten.GetCount(); i++)
             {
                   CString strZeilen;
                   m_strlisten.GetText(i, strZeilen);    
    
                  UpdateData(true); 
                  pfade.WriteString(strZeilen); 
             }
    
        }
    

    Das müsste so klappen...

    Gruß
    :: NoName ::



  • Ich hatte es vorhin so gemacht:

    CString in;
    	CStdioFile pfade;
    	CString pfad= "..\\Listen\\docpfade.txt";
    
    	if (pfade.Open(pfad,CFile::modeWrite))
    	{	
    
    		UpdateData(true);
    		pfade.WriteString(m_strliststring);
    
    	}
    

    Aber es wird nichts abgespeichert, auch bei deiner version passiert im file nichts.



  • m_strliststring

    ist eine membervariable zur listbox vom typ cstring.

    m_strlisten

    ist eine membervariable control von Clist



  • Du musst nur eine Member-Vaiable von der ListBox erstellen, du kannst es auch so machen :

    CListBox* pBox = (CListBox*) GetDlgItem(ID_DEINER_LISTBOX);
    
    CString in; 
        CStdioFile pfade; 
        CString pfad= "..\\Listen\\docpfade.txt"; 
    
        if (pfade.Open(pfad,CFile::modeReadWrite)) 
        { 
             for(int i = 0; i < pBox->GetCount(); i++) 
             { 
                   CString strZeilen; 
                   pBox->GetText(i, strZeilen);     
    
                  UpdateData(true); 
                  pfade.WriteString(strZeilen); 
             } 
    
        }
    

    Gruß
    :: NoName ::



  • Jetzt hab ich 3. Versionen und abspeichern tut er immer noch nicht....



  • Das habe ich völlig übersehen, man muss erstmal die Datei 'erstellen' bevor man in sie reinschreibt :

    ...
    
    if (pfade.Open(pfad, CFile::modeCreate | CFile::modeWrite)) 
    
    ...
    

    Den restlichen Code musst du noch hinzufügen...

    Gruß
    :: NoName ::



  • muss ich sie den neu erstellen wenn ich sie doch schon besitze??

    das würde doch heissen dass ich sie jedesmal neu erstellen würde.
    ach das ging auch nicht, hatte ich schon mit modeCreate ausprobiert.
    Hat es einen fehler ausgespuckt, irgendwas würde mit dem file nicht stimmen.



  • Wenn du sie schon erstellt hast, verwende nur CFile::modeWrite :

    if (pfade.Open(pfad, CFile::modeWrite))
    

    Gruß
    :: NoName ::



  • Es ist immer hilfreich in der MSDN zu schauen wenn man Klassenmember und Parameter wissen will.

    CFile::modeCreate | CFile::modeNoTruncate | CFile::modeReadWrite
    File wird geöffnet als Lesen/schreiben.
    Wenn es noch nicht existiert wird es angelegt.
    WEenn es existiert wird der inhalt nicht geleert.



  • Hallo,

    das ist nett für die aufklärung.
    aber ich hatte bereits in der MSDN geschaut und dabei bereit alle drei Versionen, auch die mit CFile::modeNoTruncate, ausprobiert.
    Und keine geht.

    Auch jetzt nicht. Muss ich vielleicht noch irgendetwas beachten???

    Noch mal kurz:

    Beim drücken auf einem Button soll der Inhalt der Listbox in ein Textfile übertragen werden.


Anmelden zum Antworten