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;
    
    }
  • 相关阅读:
    iOS中Zbar二维码扫描的使用
    SOJ 1135. 飞跃原野
    SOJ 1048.Inverso
    SOJ 1219. 新红黑树
    SOJ 1171. The Game of Efil
    SOJ 1180. Pasting Strings
    1215. 脱离地牢
    1317. Sudoku
    SOJ 1119. Factstone Benchmark
    soj 1099. Packing Passengers
  • 原文地址:https://www.cnblogs.com/ike_li/p/7744208.html
Copyright © 2011-2022 走看看