加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

从CMemFile函数学习数据处理

发布时间:2020-12-14 03:38:30 所属栏目:大数据 来源:网络整理
导读:CMemFile函数最一般的用途是创建CMemFile对象,并通过调用CFile成员函数来使用它。值得注意的是当创建CMemFile后将自动得打开它:不要调用仅仅用于磁盘文件的CFile::Open函数,其原因在于没有使用数据成员CFile::m_hFile。 内存映射文件是为了解决磁盘的读写

CMemFile函数最一般的用途是创建CMemFile对象,并通过调用CFile成员函数来使用它。值得注意的是当创建CMemFile后将自动得打开它:不要调用仅仅用于磁盘文件的CFile::Open函数,其原因在于没有使用数据成员CFile::m_hFile。

内存映射文件是为了解决磁盘的读写瓶颈(I/O)。

内存文件CMemFile则可以用在一些绝密的场合。

很多时候,程序会产生一些临时文件,而这些临时文件又涉及到一些绝密的数据信息,这时候,一般有这几种解决方法:加密之后再保存到磁盘中;直接解到内存中。

CMemFile类可以把这些绝密数据解密到内存中,并当作文件来处理。

解压到磁盘的缺点:任何文件,只要写入到磁盘,一般的删除方法都无法彻底删除这些数据,因为,磁介质的信号是无法一次性清除的。而内存则不同,只要断电,内存的数据就会马上丢失。

    //C++
   
    LPCTSTR   lpszString   =   "ABCDEFGHIJKLMN ";            //要写入文件的数据
 
    //定义一个CMemFile对象,该对象并不对应磁盘文件,而是一块内存
    CMemFile   file;
 
    file.Write(lpszString,lstrlen(lpszString));            //写
 
    file.SeekToBegin();    //把文件指针移动到文件开头
 
    TCHAR   lpszBuf[255]   =   {0};
    file.Read(lpszBuf,255);
 
    AfxMessageBox(lpszBuf);        //把读出的内容显示出来

//C++

void CCMemFile1Dlg::OnOk2()
{
    // TODO: Add your control notification handler code here
 
    //打开一个文件,读入 内存buffer中
    CFile     file;
    file.Open( "ReadMe.txt",CFile::modeReadWrite,NULL);
    BYTE*   buffer=(BYTE*)   malloc(file.GetLength());
    file.Read(buffer,file.GetLength());
 
    //将buffer与 memfile关联起来
    CMemFile   memfile;
    memfile.Attach(buffer,file.GetLength(),1024);
    memfile.SetLength(file.GetLength());
 
    //将头200 的数据 加入的末尾,重复100次
    byte   tempbuffer[200];
    for(int   i=0;i <100;i++)
    {
        memfile.Seek(0,CFile::begin);
        memfile.Read(tempbuffer,200);
        memfile.Seek(0,CFile::end);
        memfile.Write(tempbuffer,200);
    }
    //   test   over
 
    //存回文件
    int   size=memfile.GetLength();
    memfile.Detach();
    file.Seek(0,CFile::begin);
    file.Write(buffer,size);
    file.Close();
    free(buffer);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读