MFC编程 -- 保存和读取列表框内容
2023-03-14 22:40:54 时间
一、新建一个结构体
在pch.h新建一个结构体,将列表里面的一行内容当做一个结构进行保存
struct 列表结构 { TCHAR 专辑[20]; TCHAR 主打歌[20]; int 年份; TCHAR 时长[20]; };
二、将列表的内容保存到文件
HANDLE 文件句柄 = CreateFile(_T("./aiyou.txt"), GENERIC_WRITE,FILE_SHARE_READ,NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL); //1、保存的文件名字;2、访问模式(GENERIC_READ);3、共享模式;4、指向安全属性的指针 //5、如何创建文件,覆盖前面的文件(CREATE_ALWAYS )6、文件属性,默认;7、用于复制文件句柄 CListCtrl* 列表句柄 = (CListCtrl*)GetDlgItem(IDC_LIST3); int i = -1; int 行号 = 列表句柄->GetItemCount(); 列表结构 列表; while (++i<行号) { _tcscpy(列表.专辑, 列表句柄->GetItemText(i, 0)); _tcscpy(列表.主打歌, 列表句柄->GetItemText(i, 1)); 列表.年份 = _tstoi(列表句柄->GetItemText(i,2)); _tcscpy(列表.时长, 列表句柄->GetItemText(i, 1)); WriteFile(文件句柄,&列表,sizeof(列表),NULL,NULL); //1、文件句柄;2、写入的缓冲区;3要写入的大小; } CloseHandle(文件句柄);
三、读取列表的内容
1、在头文件声明一下加载函数
class C管理系统Dlg : public CDialogEx { // 构造 void 读取信息(); public: C管理系统Dlg(CWnd* pParent = nullptr); // 标准构造函数
2、编写读取信息的代码
HANDLE 文件句柄 = CreateFile(_T("./aiyou.txt"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); CListCtrl* 列表句柄 = (CListCtrl*)GetDlgItem(IDC_LIST3); 列表句柄->DeleteAllItems();//清空列表 列表结构 列表; DWORD 实际传入字节数; int 行号= 列表句柄->GetItemCount(); CString 格式化内容; while (ReadFile(文件句柄,&列表,sizeof(列表), &实际传入字节数,NULL) && 实际传入字节数 == sizeof(列表)) //当实际传入的字节数为0时退出 { 列表句柄->InsertItem(行号, 列表.专辑); 列表句柄->SetItemText(行号, 1,列表.专辑); 格式化内容.Format(_T("%d"), 列表.年份); 列表句柄->SetItemText(行号, 2, 格式化内容); 列表句柄->SetItemText(行号, 3, 列表.时长); ++行号; } CloseHandle(文件句柄);
四、运行效果
相关文章
- 宝塔部署ant-design-pro vue配置
- 性能测试|Jmeter压测脚本录制与编写
- sequlize 查询时间范围和多表查询
- 类器官培养——选多能干细胞 or 成体干细胞?| MedChemExpress
- React 实现一个markdown[1]
- S63845:高效 MCL 抑制剂,用于癌症研究 | MedChemExpress
- 如何成功发送一个Target 846 EDI报文?
- 探索翻译后修饰(PTMs) 的新工具 | MedChemExpress
- CCK-8试剂盒 | MedChemExpress
- TLR4助力攻克脑血管难题 | MedChemExpress
- 不背锅运维:k8s探针实战
- Mac 中的定时任务
- 【k哥爬虫普法】爬虫第一案,侵犯个人隐私,“入侵”短视频服务器!
- 性能测试|JMeter压测结果分析
- 【图文教程】云服务器上,Linux安装VSFTPD组件及遇到的问题
- 一例误用unsafe包引起的内存问题
- 利用Kubernetes与SRRS打造云原生基础架构
- 【验证码逆向专栏】安某客滑块逆向
- Go语言之闭包篇
- 性能测试|基于JMeter 完成典型电商场景(首页浏览)的性能压测