根据条件从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文件中挑出一些文字并据此修改文件名字相关推荐

  1. 怎么从已有文件中挑选需要的文字重新生成新文件_word 中如何实现 一个正文位置输入 另一个正文地方自动生成一样的...

    展开全部 问:WORD里边怎样设置每页不同32313133353236313431303231363533e59b9ee7ad9431333264643764的页眉?如何使不同的章节显示的页眉不同? ...

  2. 怎么从已有文件中挑选需要的文字重新生成新文件_Word文字处理中,如果单击“文件”选项卡中的()按钮,Word会在工作区产生新的空文档。...

    [填空题]Word文字处理中,所谓悬挂缩进是指段落中除()以外的其他行距离页面左侧的量. [多选题]关于 Word 文档页码的设置的叙述正确的有 [判断题]在 Word 2010的 "编辑& ...

  3. WINHEX使用技巧(从文件中复制出十六进制数据)

    从文件中复制出十六进制数据 现在打开一个PE文件如下: 当我们选中数据据后,直接点击ctrl+c,ctrl+v后,发现并不是我们想要的16进制数数,而是相应的ascll码对应的字母或者直接没有任何反应 ...

  4. 【正则表达式高级day01】正则表达式概述+在一个文件中,查找出itcast开头的语句+在一个文件中,找到含有itcast的语句+在一个文件中,找到邮箱为163或者126的所有邮件地址

    文章目录 正则表达式概述 思考 场景1:在一个文件中,查找出itcast开头的语句 场景:在一个文件中,找到含有itcast的语句 场景:在一个文件中,找到邮箱为163或者126的所有邮件地址 正则表 ...

  5. 从外部JS文件中获出ASPX页面控件的ClientID

    前言 当使用MasterPage.UserControl等容器时,为了避免控件的重复命名,asp.net会自动将容器中的控件生成一个ClientID(Control Tree中的可生成,否则不会生成) ...

  6. 使用Python批量实现某一Excel文件中每3行数据存一个Excel文件

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 远芳侵古道,晴翠接荒城. 大家好, ...

  7. python文件中单词的删除_使用python删除文件中的多余单词

    嗨,我正在学习Python,出于好奇,我编写了一个程序来删除文件中多余的单词. 我正在比较文件text1.txt中的测试.和'text2.txt',基于text1中的测试,我删除了test2中多余的单 ...

  8. 把一个文件中的内容,复制到另外一个文件中

    # 把一个文件中的内容,复制到另外一个文件中.# 基础目录 BASE_DIR = "E:/python重新学习/python核心编程/文件读写/" # 读取的文件名 READ_FI ...

  9. python从文件中删除某个字符,后保存该文件

    从文件中删除某个字符,后保存该文件 原本是用vs全部替换,结果发现文件太多了,将近12000个文件,非常费时间,然后就给他写了个脚本哈哈,比较快4秒就搞定了.代码拿走直接就可以用途. #!/usr/b ...

最新文章

  1. .如何实现浏览器内多个标签页之间的通信?
  2. 主板怎么开启csm_华擎Z490主板移植AMD SAM加速技术:游戏性能提升最多11.5%
  3. js实现轮播图_高性能轻量级零依赖的轮播图组件——Glider.js
  4. flex(入门)之timer的使用,键盘,鼠标的监听
  5. 520 钻石争霸赛 7-6 矩阵列平移(循环)
  6. pip is configured with locations that require TLS/SSL, however the ssl module in Python is not avail
  7. 写一个简单的实时互动小游戏
  8. centos7和centos6 开机 运行级别详解和设置
  9. 介绍几款WAP网页制作工具(提供下载)
  10. oracle 导出身份证号_Oracle如何实现按身份证号得到省市、性别、年龄
  11. 推荐 :强化学习必知二要素——计算效率和样本效率
  12. 微信防撤回(.dll补丁形式)
  13. 动力学矩阵法计算石墨烯声子谱
  14. python爬取b站弹幕_如何爬取B站弹幕
  15. 用Python自动生成Excel数据报表!
  16. 文件重命名不了怎么办,教你解决办法
  17. 智能座舱软件平台EX5.0发布,量“声”打造音视觉融合交互体验
  18. 深度强化学习系列: 多巴胺(Dopamine)环境配置和实例分析
  19. bootstrap 后端模板
  20. Nature子刊:研究者研制出胞内和胞外神经电信号同步采集的多模态电极

热门文章

  1. css文字渐变色设置
  2. 搭建ipv6有状态dhcp服务器,1-ipv6服务器之-dhcpv6(isc-dhcp)
  3. Graph Wavenet 学习笔记
  4. 合理设置 HashMap 初始值大小
  5. 使用python pandas读取csv文件数据
  6. 数据安全不容忽视,华为云网站安全为企业保驾护航
  7. 对一个整数的除法和取余问题
  8. 运用CSS画动态太极图
  9. 计算机考研注意事项,计算机考研:早期复习三大注意事项
  10. item_get - 获得1688商品详情