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

【39】MFC入门到精通——C++ /MFC操作文件行(读取,删除,修改指定行)

文章目录

  • 1 通过关键词,读取某一行 (3种方法)
  • 2 删除 指定行
  • 3 修改 指定行

1 通过关键词,读取某一行 (3种方法)

通过定位关键词,读取某一行信息,返回CString

//通过定位关键词,读取某一行信息,返回CString
CString fileRW::Read_CStrLine(CString KEY)
{ifstream ifs; //创建文件输入对象ifs.open("../x64/Debug/config.ini", ios::in); //打开文件if (!ifs.is_open()) {cout << "文件打开失败" << endl;return _T("");}CString StrLine;//读文件,读取关键词KEY的下一行内容char buf[1024] = { 0 };while (KEY != CString(buf)){ifs.getline(buf, sizeof(buf)); //读取一行内容}ifs.getline(buf, sizeof(buf));StrLine = CString(buf);ifs.close(); //关闭文件return StrLine;
}

通过定位关键词,读取某一行信息,返回CString

//通过定位关键词,读取某一行信息,返回CString
CString fileRW::Read_KeyLine(CString KEY)
{if (!file.Open(GetAppPath() + "./config.ini", CFile::modeRead)){return 0;}CString   strLine = _T("");while (file.ReadString(strLine)){if (KEY == strLine){break;}}file.ReadString(strLine);file.Close();return strLine;
}

通过定位关键词,读取某一行信息,返回string

//通过定位关键词,读取某一行信息,返回string
string fileRW::Read_strLine(string KEY)
{ifstream ifs; //创建文件输入对象ifs.open("../x64/Debug/config.ini", ios::in); //打开文件if (!ifs.is_open()) {cout << "文件打开失败" << endl;return "-1";}string StrLine;//读文件,读取关键词KEY的下一行内容char buf[1024] = { 0 };while (KEY != string(buf)){ifs.getline(buf, sizeof(buf)); //读取一行内容}ifs.getline(buf, sizeof(buf));StrLine = string(buf);ifs.close(); //关闭文件return StrLine;
}

2 删除 指定行

/************************************
@ Brief:		删除指定行
@ Author:
@ Created:
@ Return:
************************************/
void fileRW::DelLineData(char* fileName, int lineNum)
{ifstream in;in.open(fileName);string strFileData = "";int line = 1;char lineData[1024] = { 0 };while (in.getline(lineData, sizeof(lineData))){if (line == lineNum){strFileData += "\n";}else{strFileData += CharToStr(lineData);strFileData += "\n";}line++;}in.close();//写入文件ofstream out;out.open(fileName);out.flush();out << strFileData;out.close();
}

3 修改 指定行

void fileRW::ModifyLineData(string fileName, int lineNum, string lineData)
{ifstream in;in.open(fileName, ios::in);string strFileData = "";int line = 1;char tmpLineData[1024] = { 0 };while (in.getline(tmpLineData, sizeof(tmpLineData))){if (line == lineNum){strFileData += lineData;strFileData += "\n";}else{strFileData += tmpLineData;strFileData += "\n";}line++;}in.close();//写入文件ofstream out;out.open(fileName, ios::out);out.flush();out << strFileData;out.close();
}

参考:

C++操作文件行(读取,删除,修改指定行)

MFC_9.13_登陆注册,txt保存用户名密码

MFC中修改特定行

C++实现读取文件的指定行数的方法
C++ 读文件某一行(特定行)数据

在这里插入图片描述

http://www.dtcms.com/a/284892.html

相关文章:

  • 闲庭信步使用图像验证平台加速FPGA的开发:第二十一课——高斯下采样后图像还原的FPGA实现
  • 在VsCode上使用开发容器devcontainer
  • 基于MATLAB的极限学习机ELM的数据分类预测方法应用
  • VSCode 配置 C# 开发环境完整教程(附效果截图)
  • 【后端】.NET Core API框架搭建(7) --配置使用Redis
  • java-字符串
  • 东芝2822AM复印机请求维修C449简单操作修复步骤
  • vue3 自定义vant-calendar header/footer/maincontent
  • 【实时Linux实战系列】利用容器化实现实时应用部署
  • 量化环节剖析
  • 鸿蒙Navigation跳转页面白屏
  • 【agent实战】基于 LangGraph 实现 Agentic RAG:原理、实战与创新全解
  • SII9022ACNU-富利威-HDMI芯片
  • stack,queue,priority_queue的模拟实现及常用接口
  • Qt6-学习Cmakelist(翻译官方文档)
  • Pytorch深度学习框架实战教程02:开发环境部署
  • python学智能算法(二十二)|SVM-点与超平面的距离
  • faster-lio仿真环境问题及解决
  • 腾讯云服务上下载docker以及使用Rabbitmq的流程
  • Python网络爬虫——介绍
  • 【unitrix】 6.5 基础整数类型特征(base_int.rs)
  • Redis:哨兵(Sentinel)
  • MySQL的索引操作及底层结构浅析
  • 产品经理如何描述用户故事
  • modelscope ProxyError: HTTPSConnectionPool(host=‘www.modelscope.cn‘, port=443)
  • 作物长势产量预测yyds!遥感数据同化DSSAT模型,区域精准农业就靠它!
  • 27、鸿蒙Harmony Next开发:ArkTS并发(Promise和async/await和多线程并发TaskPool和Worker的使用)
  • Hyperledger Fabric:构建企业区块链网络的实践指南
  • 【实时Linux实战系列】硬件中断与实时性
  • 什么是GEO 和 SEO ?GEO 与 SEO 有什么区别?如何快速入门GEO?