zoukankan      html  css  js  c++  java
  • 读取文件内容时,显示的内容明显少于文本长度

    最近在读取html文件的内容时,遇到问题:

    数据的长度明明很大,但读取的char*数据只显示几个字节,转换为wstring后,也是只显示几个字节。

    在研究内存之后,发现是因为数据中存在 字符,char*,CString等在遇到 时就会丢弃后面的数据。

    //读取文件内容:

    HANDLE hFile = CreateFile(szFilePath,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0);
    if (hFile == INVALID_HANDLE_VALUE)
    {
    LOG_ERROR(L"判断简历文件:读取文件内容出错(%d)", GetLastError());
    return false;
    }
    DWORD dwFileSize = GetFileSize(hFile,0);
    char* buffer = new char[dwFileSize];
    ::SetFilePointer(hFile,0, NULL, FILE_BEGIN);
    DWORD dwRead = 0;
    BOOL filesucc=::ReadFile(hFile,buffer,dwFileSize, &dwRead, NULL);
    if(filesucc==0)
    {
    LOG_ERROR(L"判断简历文件:读取文件内容出错(%d)", GetLastError());
    return false;
    }
    CloseHandle(hFile);

    char * pchar = replaceAll(buffer, '', ' ', rtnLength );//CString assign等遇到会丢弃后面的数据

    replaceAll定义如下:

    char * replaceAll(char * src,char oldChar,char newChar, int length)
    {
    char * head=src;
    int i = 0;
    while(i < length/**src!=''*/)
    {
    if(*src==oldChar)
    *src=newChar;
    src++;
    i ++;
    }
    return head;
    }

  • 相关阅读:
    mysql 业务SQL语句使用记录
    expect脚本使用
    ActiveMQ消息队列集群搭建
    使用Helm部署dashboard(更换默认helm仓库)
    2008 R2中的无线连接 wireless
    多线程下的单例设计模式
    如何思索算法(一)
    提问的智慧 整理版
    如何思索算法(三)动态规划
    如何思索算法(二) 谈谈素数
  • 原文地址:https://www.cnblogs.com/pjl1119/p/6906661.html
Copyright © 2011-2022 走看看