ファイルへのデータの書き出しをするには? – プログラミング – Home

ファイルへのデータの書き出しをするには...
 
通知
すべてクリア

ファイルへのデータの書き出しをするには?


HaYa
 HaYa
(@HaYa)
ゲスト
結合: 22年前
投稿: 2
Topic starter  

今VC++でデータをtxtファイルへ書き出すといったようなプログラムを作成中です。
しかし、その中でファイルへの書き出しを『WriteFile()』を用いて行いたいのですが、
完成したtxtファイルを見てみると、記号みたいな文字が一列目に表示されているだけで
うまくいきません。
ここで、『WriteFile()』の返り値を調べてみたら『1』でした。0以外なので成功してい
るような気がするのですが、どなたか原因がわかる方がいらっしゃいましたら教えてくだ
さい。よろしくお願いします。


引用解決済
トピックタグ
YuO
 YuO
(@YuO)
ゲスト
結合: 22年前
投稿: 320
 

WriteFileする時点でブレークして,書き込む情報を調べても正しいですか?

また,WriteFile周辺のプログラムを抜粋して載せてみてください。
現在の情報からでは答えようがないです。


返信引用
ライオン
 ライオン
(@ライオン)
ゲスト
結合: 22年前
投稿: 16
 

バイナリ形式で書き込んでるのに、メモ帳でみた感じかな?
バイナリエディタで見れば、データの確認はできると思います。
まずは、書き込んだ形式をチェックしてみてね。


返信引用
HaYa
 HaYa
(@HaYa)
ゲスト
結合: 22年前
投稿: 2
Topic starter  

YuOさん、ライオンさん返答ありがとうございます。

返事が遅れましたが、以下にソースと出力結果を書きました。
ゥ力で解決しようとしたのですが、やはり結果は同じでした。
どうにかtxtファイルとして書き出すことは出来ないのでしょうか?
宜しくお願いします。

【ソース】
CString EntryName
CString lpFileName;
CString FName;
HANDLE HRes;
DWORD DataSize;
BOOL BRes;

//ファイルの作成
FName = FILE.txt;
lpFileName =C:\\FOLDERNAME\\+ FName;
HRes = CreateFile(lpFileName, GENERIC_READ|GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );

//ファイルへ出力
BRes = WriteFile(HRes, (LPVOID)&EntryName, strlen(EntryName), &DataSize, NULL);
CloseHandle(HRes);

【出力結果】
エ&*・*


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 23年前
投稿: 1301
 

CString は char* ではありません。

const char* str = EntryName;
BRes = WriteFile(HRes, (LPVOID)str, strlen(str), &DataSize, NULL);


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました