[CListCtrl] Inhalt formatiert in ein File
-
Hi,
ich mal wieder.

Es geht mal wieder um ein CListCtrl, ich habe vor, die Einträge des Controls in einem File zu speichern.
Das Listcontrol hat bei mir 4 Zeilen und 3 Spalten.Hier der Code, der soweit erstmal funktioniert:
void C...View::ListTextToLog() { DWORD dwDummy = 0; //CString HeaderText[3] = {"Timestamp", "Wert 1", "Wert 2\r\n"}; //int HeadColWidth[3] = {70, 50, 60}; // ColWidth's der Header CString line, date; CTime curTime = CTime::GetCurrentTime(); date.Format("\r\n=== [%02d.%02d.%02d] : [%02d:%02d:%02d] ===\r\n", curTime.GetDay(), curTime.GetMonth(), curTime.GetYear(), curTime.GetHour(), curTime.GetMinute(), curTime.GetSecond()); C...Doc *pDoc = GetDocument(); ASSERT(pDoc); SetFilePointer(pDoc->hLogFile, 0, NULL, FILE_END); WriteFile(pDoc->hLogFile, date, date.GetLength(), &dwDummy, NULL); for (int i = 0; i < m_tool.GetItemCount(); i++) { for (int j = 0; j < m_tool.GetHeaderCtrl()->GetItemCount(); j++) { //WriteFile(pDoc->hLogFile, HeaderText[j], HeadColWidth[j], &dwDummy, NULL); line += m_tool.GetItemText(i, j) + " | "; if (j == 2) line += "\r\n"; } WriteFile(pDoc->hLogFile, line, line.GetLength(), &dwDummy, NULL); } }Das Problem liegt dabei, dass ich nicht genau weiß, wie ich in dieser Funktion auch den Text der einzelnen Columns im Header mit ins File schreibe (das auskommentierte) !

Das File soll so aussehen, man soll ja wissen, welcher Wert zu was gehört (z.B):
Timestamp | Wert 1 | Wert 2 13:13:00 eins zwei 13:15:25 drei vierIn HeadColWidth stehen die Breiten der 3 Spalten, und in HeaderText eben der Text der einzelnen Spalten im Header !
Nur ist jetzt die Frage, wie ich das schreiben könnte, dass mein File am Ende wie im Beispiel aussieht, hatte das schon so probiert, aber das File sieht dann so aus:=== [21.01.2009] : [13:16:58] === Timestamp ýýýý«««««««« ¬ÿ:jc‹à>ô?ôˆMv[ [ ýýWert 1 ýýýý««««««««îþîþîþ ¬ÿ:jc‹8?ô §µˆMWert 2 ýýýý««««««««þîþ ¨ÿ:nc‹ È©µ¸7ôˆMv[ 6 f ýý13:13:00 | eins | zweiWeiß nicht, wie ich das anpacken soll.

Kann mir da jemand Hilfe leisten ??
Schonmal Thx dafür !
-
void C...View::ListTextToLog() { DWORD dwDummy = 0; //CString HeaderText[3] = {"Timestamp", "Wert 1", "Wert 2\r\n"}; //int HeadColWidth[3] = {70, 50, 60}; // ColWidth's der Header CString line, date; CTime curTime = CTime::GetCurrentTime(); date.Format("\r\n=== [%02d.%02d.%02d] : [%02d:%02d:%02d] ===\r\n", curTime.GetDay(), curTime.GetMonth(), curTime.GetYear(), curTime.GetHour(), curTime.GetMinute(), curTime.GetSecond()); C...Doc *pDoc = GetDocument(); ASSERT(pDoc); SetFilePointer(pDoc->hLogFile, 0, NULL, FILE_END); line = date; for (int j = 0; j < m_tool.GetHeaderCtrl()->GetItemCount(); j++) { int i, nCount = pmyHeaderCtrl->GetItemCount(); HDITEM hdi; enum { sizeOfBuffer = 256 }; TCHAR lpBuffer[sizeOfBuffer]; hdi.mask = HDI_TEXT; hdi.pszText = lpBuffer; hdi.cchTextMax = sizeOfBuffer; m_tool.GetHeaderCtrl()->GetItem(i, &hdi); if(j) line += "|" + lpBuffer; else line += lpBuffer; } line += "\r\n"; for (int i = 0; i < m_tool.GetItemCount(); i++) { line += m_tool.GetItemText(i, j) + " | "; if (j == 2) line += "\r\n"; } WriteFile(pDoc->hLogFile, line, line.GetLength(), &dwDummy, NULL); }So könnte das ungefähr aussehen. Habe das aber net getestet, also weiss nicht ob es Fehlerfrei is
Gruß Matthias