1. 程式人生 > >UNICODE環境下整行讀取文字檔案的方法

UNICODE環境下整行讀取文字檔案的方法

因為要逐行處理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;
}