请问VC++6.0中,如何将listcontrol控件中的内容写入到一个文件中?

 我来答
全新开拓者
2010-12-16 · 超过17用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:0
展开全部
那要看你的ListCtrl里面的内容了
如:CListCtrl m_listCtrl;
插入的是你自定义的结构或类内容
假设 typedf struct _DEVICE_INFO
{
int m_nDeviceID;
int m_nDeviceIP;
}DEVICE_INFO;
DEVICE_INFO *device = new DEVICE_INFO;
//设置各个值
//插入到列表
m_listCtrl.InsertItem(0,"text",0);
m_listCtrl.SetItem(0, 1, TVIF_TEXT,device->m_nDeviceID,0,0,0,0)
m_listCtrl.SetItem(0, 2, TVIF_TEXT,device->m_nDeviceIP,0,0,0,0)
m_listCtrl.SetItemData(0,(DWORD)device)//设置类表内容的数据类型(自定义的类或结构)
之后再点击列表相应函数中
{
POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();
if(pos == NULL)
return;
int nSel = m_listCtrl.GetNextSelectedItem(pos);
//获得选项的内容,将内容的地址付给结构或类的指针
DEVICE_INFO*pDevice =(DEVICE_INFO*) m_listCtrl.GetItemData(nSel);
//写文件
HANDLE hFile = CreateFile("deviceInfo.dat", GENERIC_WRITE, NULL, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD dwNum;
WriteFile(hFile, 1, sizeof(int), &dwNum, NULL);
WriteFile(hFile, pDevice->m_nDeviceID, sizeof(int), &dwNum, NULL);
WriteFile(hFile, pDevice->m_nDeviceIP, sizeof(int), &dwNum, NULL);
CloseHandle(hFile);
/////////以下是直接写入结构方式

WritePrivateProfileStruct("Device", "DeviceInfo" , pDevice,sizeof(DEVICE_INFO),"device.ini" );
}

写文件的方式很多,最关键是列表插入的内容,最好是采用 CTypedPtrList<CPtrList, DEVICE_INFO*> m_ptrDeviceList; 方式把插入到ListCtrl的内容也插入到你自定义的数据列表中,之后通过循环一次性的保存文件或读取文件
ulanr74
2010-12-16 · TA获得超过1429个赞
知道小有建树答主
回答量:1313
采纳率:100%
帮助的人:240万
展开全部
我是这么实现的:
第一,把数据库打开从表中读取相应的数据
第二,把读取的数据分别转成字符串,并写入list控件中即可.
控件中的每个单元格都是要写的,可用循环实现.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mwtnh1987
2010-12-16 · TA获得超过118个赞
知道答主
回答量:150
采纳率:0%
帮助的人:173万
展开全部
前提:知道你列表控件的列数,因为一般设置列表控件都是报表型的,已经设置好有几列
比如说2列
CFile file;
CString str = "";
int count = m_ListCtrl.GetItemCount();
for(int i=0; i<count; i++)
{
str += m_ListCtrl.GetItemText(i,0) + " ";
str += m_ListCtrl.GetItemText(i,1) + "\r\n";
}
file.Open("....."; CFile::modeCreate|CFile::modeWrite);
file.SeekToBegin();
file.Write(str, str.GetLength());
file.Close();
PS:以上答案,仅凭空写出,未经VC测试,仅供参考..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yzljlss
2010-12-16 · TA获得超过106个赞
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:0
展开全部
例如:

CString szData;
int row,column;
...
szData = m_ctrlList.GetItemText(row, column);
CFile fp;
if (fp.Open("test.txt", CFile::modeCreate|CFile::modeWrite))
{
fp.Write((LPCTSTR)szData, szData.GetLength());
fp.Close();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式