根据条件从txt文件中挑出一些文字并据此修改文件名字
*学习Windows API编程
* 代码0003
* 根据特定条件读写文件.c
********************************************************/
/* ************************************
* DWORD ReadFileContent(LPSTR szFilePath)
* 功能 获取文件大小
* 读取文件内容,根据条件判断是否写入文件
* 参数 LPSTR szFilePath
* 文件路径
**************************************/
/* ******************************************************
* SaveDataToFile
* 功能 将数据存储到文件末尾
* 参数 LPSTR szFilePath 文件路径
* LPVOID lpData 需存储的数据
* DWORD dwDataSize 数据大小(字节)
********************************************************/
/* 头文件 */
#include <windows.h>
#include <stdio.h>
DWORD ReadFileContent(LPSTR szFilePath)
{
//文件大小
HANDLE hFileRead;
//保存文件大小
LARGE_INTEGER liFileSize;
//成功读取的文件数据大小
DWORD dwReadedSize;
//累加计算已经读取数据的大小
LONGLONG liTotalRead = 0;
//文件数据缓存
BYTE lpFileDataBuffer[2];
DWORD dwFlag=0;
//打开已经存在的文件,读取内容。
hFileRead = CreateFile(szFilePath,// 要打开的文件名
GENERIC_READ, // 以读方式打开
FILE_SHARE_READ, // 可共享读
NULL, // 默认安全设置
OPEN_EXISTING, // 只打开已经存在的文件
FILE_ATTRIBUTE_NORMAL, // 常规文件属性
NULL); // 无模板
//打开文件是否成功。
if(hFileRead==INVALID_HANDLE_VALUE)
{
printf("打开文件失败:%d",GetLastError());
}
if(!GetFileSizeEx(hFileRead,&liFileSize))
{
printf("获取文件大小失败:%d",GetLastError());
}
else
{
printf("文件大小为:%d\n",liFileSize.QuadPart);
}
//循环读取并打印文件内容
while(TRUE)
{
DWORD i;
if(!ReadFile(hFileRead, //读文件的句柄
lpFileDataBuffer, //存储读取的文件内容
2, //读的大小(字节)
&dwReadedSize, //实际读取的大小
NULL)) //不使用Overlapped
{
printf("读文件错误:%d\n",GetLastError());
break;
}
printf("读取了%d字节,文件内容是:",dwReadedSize);
for(i=0; i<dwReadedSize; i++)
{
printf("0x%x ",lpFileDataBuffer);
}
if(lpFileDataBuffer[0]==strtoul("4b",NULL,16) &&
lpFileDataBuffer[1]== strtoul("00",NULL,16))
{
printf("k");
dwFlag=1;
}
if(lpFileDataBuffer[0]==strtoul("b",NULL,16) &&
lpFileDataBuffer[1]== strtoul("30",NULL,16))
{
printf("》");
dwFlag=0;
}
if(dwFlag==1)
{
printf("%d",dwFlag);
SaveDataToFile(".\\6.txt",lpFileDataBuffer,2);
//SaveDataToFile(".\\6.txt",lpFileDataBuffer[1],1);
}
printf("\n");
liTotalRead += dwReadedSize;
if(liTotalRead == liFileSize.QuadPart)
{
printf("读文件结束\n");
break;
}
}
CloseHandle(hFileRead);
return 0;
}
DWORD SaveDataToFile(
LPSTR szFilePath,
LPVOID lpData,
DWORD dwDataSize)
{
//文件句柄
HANDLE hFileWrite;
//成功写入的数据大小
DWORD dwWritedDateSize;
//打开已经存在的文件,读取内容。
hFileWrite = CreateFile(szFilePath, // 要打开的文件名
GENERIC_WRITE, // 以写方式打开
0, // 可共享读
NULL, // 默认安全设置
OPEN_ALWAYS, // 打开已经存在的文件,没用则创建
FILE_ATTRIBUTE_NORMAL, // 常规文件属性
NULL); // 无模板
//判断是否打开成功
if(hFileWrite==INVALID_HANDLE_VALUE)
{
printf("打开文件失败:%d\n",GetLastError());
return 1;
}
//设置文件指针到文件尾
SetFilePointer(hFileWrite,0,0,FILE_END);
//将数据写入文件
if(!WriteFile(hFileWrite,lpData,dwDataSize,&dwWritedDateSize,NULL))
{
printf("写文件失败:%d\n",GetLastError());
return 1;
}
CloseHandle(hFileWrite);
return 0;
}
/* ******************************************************
* int main(int argc, PCHAR argv[])
* 功能 调用ListFileInDrectory
* 遍历目录下的文件和子目录
* 参数 argv[1]为需遍历的路径,如果为空则获取
* 当前路径
********************************************************/
int main(int argc, PCHAR argv[])
{
CHAR szCurrentPath[MAX_PATH];
GetCurrentDirectory(MAX_PATH,szCurrentPath);
ReadFileContent(".\\1.txt");
return 0;
}
++
/* 头文件 */
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
DWORD SaveDataToFile(
LPSTR szFilePath,
LPVOID lpData,
DWORD dwDataSize)
{
//文件句柄
HANDLE hFileWrite;
//成功写入的数据大小
DWORD dwWritedDateSize;
//打开已经存在的文件,读取内容。
hFileWrite = CreateFile(szFilePath, // 要打开的文件名
GENERIC_WRITE, // 以写方式打开
0, // 可共享读
NULL, // 默认安全设置
OPEN_ALWAYS, // 打开已经存在的文件,没用则创建
FILE_ATTRIBUTE_NORMAL, // 常规文件属性
NULL); // 无模板
//判断是否打开成功
if(hFileWrite==INVALID_HANDLE_VALUE)
{
printf("打开文件失败:%d\n",GetLastError());
return 1;
}
//设置文件指针到文件尾
SetFilePointer(hFileWrite,0,0,FILE_END);
//将数据写入文件
if(!WriteFile(hFileWrite,lpData,dwDataSize,&dwWritedDateSize,NULL))
{
printf("写文件失败:%d\n",GetLastError());
return 1;
}
CloseHandle(hFileWrite);
return 0;
}
DWORD ReadFileContent(LPSTR szFilePath)
{
//文件大小
HANDLE hFileRead;
//保存文件大小
LARGE_INTEGER liFileSize;
//成功读取的文件数据大小
DWORD dwReadedSize;
//累加计算已经读取数据的大小
LONGLONG liTotalRead = 0;
//文件数据缓存
BYTE lpFileDataBuffer[2];
LPWSTR szDrive;
LPWSTR szString=L"\n";
//ZeroMemory(szLogicalDriveStrings,BUFSIZE);
//打经TR存在的文件,读取内容。
hFileRead = CreateFile(szFilePath,// 要打开的文件名
GENERIC_READ, // 以读方式打开
FILE_SHARE_READ, // 可共享读
NULL, // 默认安全设置
OPEN_EXISTING, // 只打开已经存在的文件
FILE_ATTRIBUTE_NORMAL, // 常规文件属性
NULL); // 无模板
//打开文件是否成功。
if(hFileRead==INVALID_HANDLE_VALUE)
{
printf("打开文件失败:%d",GetLastError());
}
if(!GetFileSizeEx(hFileRead,&liFileSize))
{
printf("获取文件大小失败:%d",GetLastError());
}
else
{
printf("文件大小为:%d\n",liFileSize.QuadPart);
}
//循环读取并打印文件内容
while(TRUE)
{
if(!ReadFile(hFileRead, //读文件的句柄
lpFileDataBuffer, //存储读取的文件内容
2, //读的大小(字节)
&dwReadedSize, //实际读取的大小
NULL)) //不使用Overlapped
{
printf("读文件错误:%d\n",GetLastError());
break;
}
printf("读取了%d字节,文件内容是:",dwReadedSize);
printf("\n");
szDrive = (LPWSTR)lpFileDataBuffer;
if (CompareStringW(0x0800,0,szDrive,1,szString,1) == 2)
{
printf("%x ",lpFileDataBuffer[0],lpFileDataBuffer[1]);
printf("\n");
SaveDataToFile(".\\6.txt",szDrive,2);
}
liTotalRead += dwReadedSize;
if(liTotalRead == liFileSize.QuadPart)
{
printf("读文件结束\n");
break;
}
}
CloseHandle(hFileRead);
return 0;
}
int main(int argc, PCHAR argv[])
{
ReadFileContent(".\\1.txt");
return 0;
}
根据条件从txt文件中挑出一些文字并据此修改文件名字相关推荐
- 怎么从已有文件中挑选需要的文字重新生成新文件_word 中如何实现 一个正文位置输入 另一个正文地方自动生成一样的...
展开全部 问:WORD里边怎样设置每页不同32313133353236313431303231363533e59b9ee7ad9431333264643764的页眉?如何使不同的章节显示的页眉不同? ...
- 怎么从已有文件中挑选需要的文字重新生成新文件_Word文字处理中,如果单击“文件”选项卡中的()按钮,Word会在工作区产生新的空文档。...
[填空题]Word文字处理中,所谓悬挂缩进是指段落中除()以外的其他行距离页面左侧的量. [多选题]关于 Word 文档页码的设置的叙述正确的有 [判断题]在 Word 2010的 "编辑& ...
- WINHEX使用技巧(从文件中复制出十六进制数据)
从文件中复制出十六进制数据 现在打开一个PE文件如下: 当我们选中数据据后,直接点击ctrl+c,ctrl+v后,发现并不是我们想要的16进制数数,而是相应的ascll码对应的字母或者直接没有任何反应 ...
- 【正则表达式高级day01】正则表达式概述+在一个文件中,查找出itcast开头的语句+在一个文件中,找到含有itcast的语句+在一个文件中,找到邮箱为163或者126的所有邮件地址
文章目录 正则表达式概述 思考 场景1:在一个文件中,查找出itcast开头的语句 场景:在一个文件中,找到含有itcast的语句 场景:在一个文件中,找到邮箱为163或者126的所有邮件地址 正则表 ...
- 从外部JS文件中获出ASPX页面控件的ClientID
前言 当使用MasterPage.UserControl等容器时,为了避免控件的重复命名,asp.net会自动将容器中的控件生成一个ClientID(Control Tree中的可生成,否则不会生成) ...
- 使用Python批量实现某一Excel文件中每3行数据存一个Excel文件
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 远芳侵古道,晴翠接荒城. 大家好, ...
- python文件中单词的删除_使用python删除文件中的多余单词
嗨,我正在学习Python,出于好奇,我编写了一个程序来删除文件中多余的单词. 我正在比较文件text1.txt中的测试.和'text2.txt',基于text1中的测试,我删除了test2中多余的单 ...
- 把一个文件中的内容,复制到另外一个文件中
# 把一个文件中的内容,复制到另外一个文件中.# 基础目录 BASE_DIR = "E:/python重新学习/python核心编程/文件读写/" # 读取的文件名 READ_FI ...
- python从文件中删除某个字符,后保存该文件
从文件中删除某个字符,后保存该文件 原本是用vs全部替换,结果发现文件太多了,将近12000个文件,非常费时间,然后就给他写了个脚本哈哈,比较快4秒就搞定了.代码拿走直接就可以用途. #!/usr/b ...
最新文章
- .如何实现浏览器内多个标签页之间的通信?
- 主板怎么开启csm_华擎Z490主板移植AMD SAM加速技术:游戏性能提升最多11.5%
- js实现轮播图_高性能轻量级零依赖的轮播图组件——Glider.js
- flex(入门)之timer的使用,键盘,鼠标的监听
- 520 钻石争霸赛 7-6 矩阵列平移(循环)
- pip is configured with locations that require TLS/SSL, however the ssl module in Python is not avail
- 写一个简单的实时互动小游戏
- centos7和centos6 开机 运行级别详解和设置
- 介绍几款WAP网页制作工具(提供下载)
- oracle 导出身份证号_Oracle如何实现按身份证号得到省市、性别、年龄
- 推荐 :强化学习必知二要素——计算效率和样本效率
- 微信防撤回(.dll补丁形式)
- 动力学矩阵法计算石墨烯声子谱
- python爬取b站弹幕_如何爬取B站弹幕
- 用Python自动生成Excel数据报表!
- 文件重命名不了怎么办,教你解决办法
- 智能座舱软件平台EX5.0发布,量“声”打造音视觉融合交互体验
- 深度强化学习系列: 多巴胺(Dopamine)环境配置和实例分析
- bootstrap 后端模板
- Nature子刊:研究者研制出胞内和胞外神经电信号同步采集的多模态电极