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;
    
    }
  • 相关阅读:
    Apache日志分析
    iptables日志探秘
    php与其他一些相关工具的安装步骤分享
    ERROR 1 (HY000): Can't create/write to file '/tmp/#sql_830_0.MYI' (Errcode: 13)
    一些可能需要的正则
    restful api的简单理解
    认识MySQL Replication
    如何处理缓存失效、缓存穿透、缓存并发等问题
    经典算法mark
    php常用的一些代码
  • 原文地址:https://www.cnblogs.com/ike_li/p/7744208.html
Copyright © 2011-2022 走看看