C++ 如何保存LISTCTRL数据到文本 并支持打开 写代码
时间: 2023-03-26 17:01:08 浏览: 124
MFC读取txt,分割显示到listctrl控件上----代码
您好,以下是回答:
您可以使用 CListCtrl::GetItemCount() 获取列表控件中的行数,然后使用 CListCtrl::GetItemText() 获取每个单元格的文本,将它们保存到一个文本文件中。打开文件时,您可以使用 CStdioFile::ReadString() 读取每一行的文本,并使用 CListCtrl::InsertItem() 和 CListCtrl::SetItemText() 将它们添加到列表控件中。以下是示例代码:
// 保存数据到文本文件
CStdioFile file(_T("data.txt"), CFile::modeCreate | CFile::modeWrite);
for (int i = ; i < m_list.GetItemCount(); i++)
{
CString strLine;
for (int j = ; j < m_list.GetHeaderCtrl()->GetItemCount(); j++)
{
strLine += m_list.GetItemText(i, j);
if (j < m_list.GetHeaderCtrl()->GetItemCount() - 1)
strLine += _T("\t");
}
strLine += _T("\n");
file.WriteString(strLine);
}
file.Close();
// 打开文本文件并加载数据到列表控件
CStdioFile file(_T("data.txt"), CFile::modeRead);
CString strLine;
while (file.ReadString(strLine))
{
int nIndex = m_list.GetItemCount();
m_list.InsertItem(nIndex, _T(""));
int nCol = ;
while (!strLine.IsEmpty())
{
CString strItem = strLine.SpanExcluding(_T("\t"));
strLine = strLine.Mid(strItem.GetLength() + 1);
m_list.SetItemText(nIndex, nCol++, strItem);
}
}
file.Close();
阅读全文