读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--;
}