因为要逐行处理GB18030文本文件,必须用UNICODE编码。但在用ReadString读取时总出错,网上找了代码,但只能读出前面5行,还有在文本比较上也不方便,因文本串末尾的回车符。琢磨了两天终于完全搞定。下面是有关的代码,注意红色部分。
.........
filetxt.Open(m_filenametxt,CFile::modeRead|CFile::typeBinary);
........
CString m_strTMP;
filetxt.Seek(2,CFile::begin);
ReadLine(filetxt, m_strTMP);
........
BOOL ReadLine( CStdioFile &bfile,CString &strReturn)
{
TCHAR tc;
CString strBuff = _T("");
strReturn = _T("");
while(bfile.Read(&tc, sizeof(TCHAR)))
{
strBuff = tc;
if( _T("/r") == strBuff)
{
bfile.Seek(2,CFile::current);
return TRUE;
}
strReturn += strBuff;
}
return FALSE;
}