掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
エディットボックスに入力したファイルを取得したい。 (ID:68658)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
// 参考になりますか? /* ReadFromFile.cpp XP sp3 , VC2005 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Fo"Debug\\" /Fd"Debug\vc80.pdb" /W4 /nologo /c /Wp64 /ZI /TP /errorReport:prompt */ #include <windows.h> int WINAPI WinMain( HINSTANCE, HINSTANCE, PSTR, int ) { HANDLE hFile ; DWORD dwReadSize ; CHAR strFileA[ 1024 ] ; DWORD dwSize ; /* 読み取るファイル名を指定する */ LPCTSTR lpFilename = TEXT( "Book1.txt" ) ; /* 読み取りモードでファイルを開く */ hFile = CreateFile( lpFilename, GENERIC_READ , 0 , NULL , OPEN_EXISTING , FILE_ATTRIBUTE_NORMAL , NULL ) ; /* ファイルが開けない場合の処理 */ if (hFile == INVALID_HANDLE_VALUE) { MessageBox( NULL, TEXT( "ファイルが開けません" ), NULL, MB_OK ) ; return -1 ; } /* ファイルサイズを取得する */ dwSize = GetFileSize( hFile, NULL ) ; /* ファイルの読み込み位置を指定する */ SetFilePointer( hFile, 0, 0, FILE_BEGIN ) ; /* ファイルをバイト単位で読み込む */ ReadFile( hFile, strFileA, dwSize, &dwReadSize, NULL ) ; /* 読み込んだ文字列に終端文字を追加する */ strFileA[ dwReadSize ] = '\0' ; /* 文字列は現在マルチバイト文字列(非Unicode)なので 明示的にMessageBoxAを呼び出せば表示できる */ MessageBoxA( NULL, strFileA, "結果", MB_OK ) ; /************************************************************************** 文字列をUnicodeへ変換する **************************************************************************/ /* ワイドキャラ用必要バッファ要素数を取得 */ int nLen = MultiByteToWideChar( CP_ACP, 0, strFileA, -1, NULL, NULL ) ; /* 変換後の文字列格納用バッファを動的確保 */ LPWSTR strFileW = new WCHAR[ nLen ] ; /* 文字列をUNICODEに変換する */ MultiByteToWideChar( CP_ACP, 0, strFileA, -1, strFileW, nLen ) ; /* UNICODE文字列として表示する */ MessageBox( NULL, strFileW, TEXT("Unicode"), 0 ) ; /* メモリを解放 */ delete strFileW ; /* ファイルハンドルを閉じる */ CloseHandle( hFile ) ; return 0 ; }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.