void RichEditView::ReadArticle(CString strName) {
CString content = "";
CStdioFile File;
CString fileName = strName;
if (File.Open(fileName, CFile::modeRead | CFile::typeBinary)) {
File.SeekToBegin();
CString str;
File.ReadString(str); // 首次讀取
while (File.ReadString(str)) { // 迴圈讀取後續行
content += str;
AfxMessageBox(str);
}
File.Close();
} else AfxMessageBox("讀取失敗!");
::SetWindowText(this->GetRichEditCtrl().m_hWnd, content);
}
第一次讀取正常,第二次調用同函式讀取同檔案時內容變空白,但檔案實際內容未變。
SeekToBegin() 是否生效。typeBinary 可能導致換行符處理異常,嘗試改用 typeText。strName 路徑在第二次調用時是否發生變化。加入斷點檢查第二次 File.Open 返回值、檔案指標位置、實際讀取到的字串長度。若問題依在,嘗試用 CFile::typeText 並逐行讀取除錯。