当前位置: 首页 > news >正文

MFC读取文件数据,添加信息到列表并保存到文件

打开并读取文件信息

添加:

BOOL infoDlg::OnInitDialog()
{CDialogEx::OnInitDialog();// TODO:  在此添加额外的初始化AfxMessageBox("欢迎查看学生信息");SetList();return TRUE;  // return TRUE unless you set the focus to a control// 异常: OCX 属性页应返回 FALSE
}
void infoDlg::SetList()
{m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_list.InsertColumn(0,_T("学号"),0,100);//0为左对齐,2为居中对齐
m_list.InsertColumn(1,_T("姓名"),0,100);
m_list.InsertColumn(2,_T("性别"),0,100);
m_list.InsertColumn(3,_T("年龄"),2,100);
}
void infoDlg:: showData()//AllData
//{m_list.InsertItem(0,"22001");//第一个不用标注列
//m_list.SetItemText(0,1,"张宇");
//m_list.SetItemText(0,2,"男");
//m_list.SetItemText(0,3,"十九");
//m_list.InsertItem(1,"22002");//第一个不用标注列
//m_list.SetItemText(1,1,"王小慧");
//m_list.SetItemText(1,2,"女");
//m_list.SetItemText(1,3,"十八");
{for(int i=0;i<AllStr.size();i++)//AllStr[i]按行输出
{for(int j=0;j<AllStr[i].size();j++)//写入列表
{if(j==0)
m_list.InsertItem(i,AllStr[i][j].c_str());
else
m_list.SetItemText(i,j,AllStr[i][j].c_str());
}
}}//添加功能
void infoDlg::OnBnClickedButton5()
{CString strno,strname,strsex,strage;
GetDlgItem(IDC_EDIT1)->GetWindowText(strno);
GetDlgItem(IDC_EDIT2)->GetWindowText(strname);// TODO: 在此添加控件通知处理程序代码
CButton*p=(CButton*)GetDlgItem(IDC_RADIO1);if(p->GetCheck())strsex="M";elsestrsex="W";p=(CButton*)GetDlgItem(IDC_CHECK1);
if(p->GetCheck())strage+="18";
p=(CButton*)GetDlgItem(IDC_CHECK2);int row =m_list.GetItemCount();if(p->GetCheck())strage+="19";m_list.InsertItem(row,strno);m_list.SetItemText(row,1,strname);m_list.SetItemText(row,2,strsex);m_list.SetItemText(row,3,strage);CString filename;
CFileDialog mydlg(true,NULL,NULL,NULL,"*.txt||");
if(mydlg.DoModal()==IDOK)
{
//AfxMessageBox("OK");
filename=mydlg.GetPathName();}
elsereturn;string textlines,item;fstream openfile(filename,ios::app);//打开文件流追加数据if(openfile.is_open())//检查文件是否成功打开{openfile<<strno<<_T(" ")<<strname<<_T(" ")<<strsex<<_T(" ")<<strage<<std::endl;//数据写入文件openfile.close();//关闭文件}else{AfxMessageBox("无法打开文件");}}//读取文件数据到列表
void infoDlg::OnBnClickedButton1()
{// TODO: 在此添加控件通知处理程序代码//string file_path="E:\\data.txt";
CString filename;
CFileDialog mydlg(true,NULL,NULL,NULL,"*.txt||");
if(mydlg.DoModal()==IDOK)
{
//AfxMessageBox("OK");
filename=mydlg.GetPathName();}
elsereturn;string textlines,item;fstream openfile(filename);int count=m_list.GetItemCount();while(getline(openfile,textlines))//读取每一行到textlines{	stringstream items(textlines);OneStr.clear();//清空while(getline(items,item,' ')){//AfxMessageBox(item.c_str());OneStr.push_back(item);//压入Onestr,读取文件到向量中}AllStr.push_back(OneStr);//压入AllStr}showData();
}

相关文章:

  • 导行电磁波从纵向场分量求其他方向分量的矩阵表示
  • 【Dart】P2 数据类型(int、double、String、bool、List、Map)
  • 抖店开通后只有零星的一些散单,是哪里出了问题?新手做店教程!
  • JVM介绍
  • R语言基础 | 安徽某高校《统计建模与R软件》期末复习
  • 力扣题目学习笔记(OC + Swift)21. 合并两个有序链表
  • oracle定位造成卡顿的SQL语句
  • Python 查杀进程的方法封装
  • ThunderSearch(闪电搜索器)_网络空间搜索引擎工具_信息收集
  • unity HoloLens2开发,使用Vuforia识别实体 触发交互(二)(有dome)
  • Hadoop入门学习笔记——五、在虚拟机中部署Hive
  • c++11 标准模板(STL)(std::pair)(七)访问 pair 的一个元素
  • 【华为OD题库-110】反转每对括号间的子串-java
  • Promise,async和js的事件循环机制
  • FPFA.一种二倍频电路代码描述以及测量详情
  • [PHP内核探索]PHP中的哈希表
  • [deviceone开发]-do_Webview的基本示例
  • 《Java编程思想》读书笔记-对象导论
  • Bootstrap JS插件Alert源码分析
  • DataBase in Android
  • js 实现textarea输入字数提示
  • Koa2 之文件上传下载
  • k个最大的数及变种小结
  • nodejs:开发并发布一个nodejs包
  • Python_网络编程
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • SQLServer之索引简介
  • vue的全局变量和全局拦截请求器
  • zookeeper系列(七)实战分布式命名服务
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 高度不固定时垂直居中
  • 记一次用 NodeJs 实现模拟登录的思路
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 说说动画卡顿的解决方案
  • 算法---两个栈实现一个队列
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 网页视频流m3u8/ts视频下载
  • 一天一个设计模式之JS实现——适配器模式
  • 因为阿里,他们成了“杭漂”
  • ionic入门之数据绑定显示-1
  • ​力扣解法汇总946-验证栈序列
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)linux 命令大全
  • (转)大型网站的系统架构
  • .Net8 Blazor 尝鲜