speichern und laden, der clistctrl liste als unicode textfile



  • Hi

    ich wollte die clistctrl liste speichern und wieder laden. die liste besteht aus 2 spalten (Name, Telefonnummer) und z.b. 6 zeilen.
    das einfache abspeichern ueber cfiledialog als *.txt funktioniert, aber ich muss es ueber den unicode textfile speichern und aufrufen damit die spalten mit einem tabulator getrennt sind.

    void CDListDlg::OnExport() 
    {
    CString m_strDNr, m_strDataName;
    CFileDialog m_Export(FALSE, "", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Text files "Text-Data(*.txt)|*.txt||");
    
        int i, nRowsNumber;
    
    	if(m_Export.DoModal() == IDOK)
    	{
    	m_strDataName = m_Export.GetFileName();
    
    	CStdioFile Export;
    	// Daten in Datei sichern
    	if (Export.Open(m_strDataName, CFile::modeCreate | CFile::modeWrite))
    	{
    		// Anzahl der Zeilen im Listenfeld holen
    		nRowsNumber = m_cDList.GetItemCount();
    
    		for(i=0; i < nRowsNumber; i++)
    		{
    			m_strDName = m_cDList.GetItemText(i, 0);
    			m_strDNr = m_cDList.GetItemText(i, 1);
    
    			Export.WriteString(m_strDName+"\n" + m_strDNr+"\n") ; 
    		}
    
    	Export.Close ();
    	MessageBox ("Data exported", "Exports data", MB_ICONINFORMATION);		}
       }
        else
           MessageBox ("File opening error - Export was canceled", "Error", MB_ICONINFORMATION);
    }
    

    und das lesen

    void CDListDlg::OnImport() 
    {
        CString strLesePuffer, m_strDataName;
        CFileDialog m_Import(TRUE, "", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Text-Data(*.txt)|*.txt||"); 
    
    	if(m_Import.DoModal()==IDOK)
    	{
    		m_strDataName = m_Import.GetFileName();
    
    CStdioFile Import; 
        int i=0;
    
        // Kompletten Inhalt des Listenelements loschen
        m_strDList.DeleteAllItems();
    
        // Datei auslesen
        if (Import.Open(m_strDataName, CFile::modeRead))
    	{
    	while(Import.ReadString(strLesePuffer))
    		{
    		// Datei zeilenweise auslesen
    		m_strDList.InsertItem(i, strLesePuffer);
    		Import.ReadString(strLesePuffer);
    		m_strDList.SetItemText(i, 1, strLesePuffer);
    		i++;
    		}
    	}
         }
        else
           MessageBox ("Reading file error", "Error", MB_ICONINFORMATION);
    }
    

    Bitte um hilfe Danke



  • Wenn es um das öffnen von Unicode Dateien gehen sollte, hilft dir das vlt. weiter?

    FILE* of;
    CString csFilename = _T("File.txt");
    _tfopen_s( &of, csFilename, _T("w, ccs=UTF-16LE") );
    _ftprintf(of, _T("Text"));
    

  • Mod


Anmelden zum Antworten