あるテキストファイルの内容をクリアしたいですが、
何かいい方法がありますか?
恥ずかしいですが、
先のWriteFile(hFile, ", 0 ,&dwActBytes, NULL);はだめです。
> あるテキストファイルの内容をクリアしたいですが、
> 何かいい方法がありますか?
オープンしていないファイルでしたら、
CreateFile()の第5引数でCREATE_ALWAYSかTRUNCATE_EXISTINGを指定するとか。
既にオープン済みのファイルだったら(試したコトはないですが)
SetFilePointer()でファイルの先頭にファイルポインタを移動させて
SetEndOfFile()で縮小してみるとか……
前提条件をもっと出してほしいなぁ。
一番簡単なのはファイルを消してしまうことでしょう。
次に開くときは空っぽの状態で始まります。
0バイトのファイルを作りたいのか、
ファイルそのものを無くてしまいたいのかでやることは変わりますし、
ファイルを空にしたいタイミングが
そのファイルをオープンして色々やっている最中なのか、
閉じたあとなのかによってもやることは変わってきますよ。
やりたいことをもっと具体的に手順を追って説明をしてください。
やりたいことを具体的に説明させていただきます。
実は簡単ですが、
ファイルを開いて、ファイル内のデータをチェックします。
データが正しいのであれば、そのまま終わります。
データが正しくない場合は、ファイルの中身をクリアし、
正しいデータを再作成していくということです。
確かに、ファイルをクローズして、
再オープンするときにTRUNCATE_EXISTINGを指定すれば、できますが、
ファイルをクローズせず、クリアできるのかを知りたいです。
瀬戸っぷ さんが提示した方法をやってみます。
さすがですね。
SetFilePointer(hFile, 0, NULL, FILE_BEGIN);
SetEndOfFile(hFile);
で、完璧にクリアしました。
ありがとうございました。