テキストファイルを編集コントロールに読み込むために、TheForgerのWin APIチュートリアルに従います。時にはファイル全体が正しく読み込まれ、時には最後の部分が残っていることがあります。 'part'は2行半分、10行分です。o_Oファイルの外観は次のとおりです。C++、テキストを読み込む関数は、最後の数行を無視します。一部の.txtファイルは無視されます。
(I '新しいユーザーであるため、複数のハイパーリンクを投稿できないので、スクリーンショットがあるギャラリーはhttp://nancy.imgur.com/all/で、ギャラリーに表示される順番を参照しています)
2.5行抜け:秒(カーソルが「F」の後で停止する)
10行抜き:第4回(fの後にカーソルで停止)
完全に読んでください:firstとthird
私はfstreamsを代わりに使ってみましたが、同じものは除外されました(私は編集コントロールで新しい行の文字を表示することもできませんでした=)。どんなアイデアが間違っているのでしょうか?
BOOL LoadTextFileToEdit(HWND hEdit, LPCTSTR pszFileName) {
HANDLE hFile;
BOOL bSuccess = FALSE;
hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, 0, NULL);
if(hFile != INVALID_HANDLE_VALUE)
{
DWORD dwFileSize;
dwFileSize = GetFileSize(hFile, NULL);
if(dwFileSize != 0xFFFFFFFF)
{
LPSTR pszFileText;
pszFileText = GlobalAlloc(GPTR, dwFileSize + 1);
if(pszFileText != NULL)
{
DWORD dwRead;
if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL))
{
pszFileText[dwFileSize] = 0; // Add null terminator
if(SetWindowText(hEdit, pszFileText))
bSuccess = TRUE; // It worked!
}
GlobalFree(pszFileText);
}
}
CloseHandle(hFile);
}
return bSuccess; }
入力ファイルに切り捨てられた位置にASCII NUL文字(0x00バイト)が含まれている可能性はありますか? –