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"));
-
http://blog.m-ri.de/index.php/2007/07/03/vc-2005-features-der-crt-fuer-unicode-unterstuetzung/
http://blog.kalmbachnet.de/?postid=107