zoukankan      html  css  js  c++  java
  • MFC CStdioFile

    读Text文件

    void CNWiReworkDlg::ReadHexFile()
    {
        using namespace std;
        CStdioFile file;
        file.Open(hexFilePath, CFile::modeRead | CFile::typeText);
        CString line;
        vData.clear();
        while (file.ReadString(line))
        {
            int lineLength = line.GetLength();
            if (lineLength > 11)
            {
                AnalyHexFile(line, lineLength);
            }
        }
        file.Close();
    }
    
    void CNWiReworkDlg::AnalyHexFile(CString line,int lineLength)
    {
        using namespace std;
    
        
        if (line.Mid(7, 2) == "00")
        {
            line = line.Mid(9, lineLength - 11);
            CString oneByte;
            for (int i = 0; i < line.GetLength(); i += 2)
            {
                oneByte = line.Mid(i, 2);
                const size_t strsize = (oneByte.GetLength() + 1) * 2;
                char * pOneByte = new char[strsize];
                size_t sz = 0;
                wcstombs_s(&sz, pOneByte, strsize, oneByte, _TRUNCATE);
                vData.push_back(strtol(pOneByte, NULL, 16));
                
            }
        
        }
    }

    读Binary

    void CNWiReworkDlg::ReadBinaryFile()
    {
        using namespace std;
        CStdioFile file;
        file.Open(hexFilePath, CFile::modeRead|CFile::typeBinary);
        int len = file.GetLength();
        char* buf = new char[len + 1];
    
        file.Read(buf, len);
        file.Close();
        vData.clear();
        vHeadData.clear();
    
        for (int i = 0; i < 256; i++)
        {
            vHeadData.push_back(buf[i]);
        }
    
        for (int i = 256; i < len; i++)
        {
            vData.push_back(buf[i]);
        }
    
        delete buf;
    
    }
    void CNWiReworkDlg::WriteBinaryFileTest()
    {
        using namespace std;
        CStdioFile file;
        CString filePath = _T("d:\test.bin");
        file.Open(filePath, CFile::modeCreate | CFile::modeReadWrite |CFile::typeBinary);
        char* tempChar = new char[_dataSize];
        for (int i = 0; i < _dataSize; i++)
        {
            //vector<byte> _binDatas;
            tempChar[i] = _binDatas[i];    
        }
        file.Write(tempChar, _dataSize);
        file.Close();
        delete tempChar;
    
    }
  • 相关阅读:
    ps太卡
    vba 数字变为excel对应列的字母
    爬去网页离线数据
    vba 得到数字
    Sql Server generate table structure document
    Git
    windows凭据管理器
    修改注册表
    Software List
    1009 说反话
  • 原文地址:https://www.cnblogs.com/ike_li/p/7744208.html
Copyright © 2011-2022 走看看