首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

读CFile打开的文件时,如何从后向前读

2012-05-15 
读CFile打开的文件时,怎么从后向前读先用CFile打开一个文件,然后写入几个字串CFile mFilemFile.Open(111

读CFile打开的文件时,怎么从后向前读
先用CFile打开一个文件,然后写入几个字串
CFile mFile;
mFile.Open("111",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite);
CArchive ar(&mFile,CArchive::store);
CString str1("abc"),str2("def"),str3("ghi");
ar<<str1<<str2<<str3;
ar.Close();
mFile.Close();

但读时我不想从头读到尾,反而要先把最后一个读出来,接着读倒数第二个,最后才读第一个。



[解决办法]
PBYTE pbFile=(PBYTE)MapViewOfFile(hFileMapping,FILE_MAP_READ,(DWORD)(qwFileOffset>>32),(DWORD)(qwFileOffset&0xffffffff),dwBytesInBlock);

qwFileOffset是对应文件的偏移地址,如果你要总是读文件后面部分,假设文件大小是FileSize;
则qwFileOffset=FileSize-dwBytesInBlock;
pbFile的长度是dwBytesInBlock(一般是64K,分配粒度)
PBYTE TempPbFile=(pbFile+dwBytesInBlock-1);

然后通过
for(int i=dwBytesInBlock;i>0;i++)
{
//添加你具体的要求
TempPbFile--;

}

热点排行