ファイルの中身をクリアするには – プログラミング – Home

ファイルの中身をクリアするには
 
通知
すべてクリア

[解決済] ファイルの中身をクリアするには


佐倉
 佐倉
(@佐倉)
ゲスト
結合: 21年前
投稿: 43
Topic starter  

あるテキストファイルの内容をクリアしたいですが、
何かいい方法がありますか?
恥ずかしいですが、
先のWriteFile(hFile, ", 0 ,&dwActBytes, NULL);はだめです。


引用未解決
トピックタグ
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 22年前
投稿: 160
 

> あるテキストファイルの内容をクリアしたいですが、
> 何かいい方法がありますか?

オープンしていないファイルでしたら、
CreateFile()の第5引数でCREATE_ALWAYSかTRUNCATE_EXISTINGを指定するとか。
既にオープン済みのファイルだったら(試したコトはないですが)
SetFilePointer()でファイルの先頭にファイルポインタを移動させて
SetEndOfFile()で縮小してみるとか……


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

前提条件をもっと出してほしいなぁ。

一番簡単なのはファイルを消してしまうことでしょう。
次に開くときは空っぽの状態で始まります。

0バイトのファイルを作りたいのか、
ファイルそのものを無くてしまいたいのかでやることは変わりますし、

ファイルを空にしたいタイミングが
そのファイルをオープンして色々やっている最中なのか、
閉じたあとなのかによってもやることは変わってきますよ。

やりたいことをもっと具体的に手順を追って説明をしてください。


返信引用
佐倉
 佐倉
(@佐倉)
ゲスト
結合: 21年前
投稿: 43
Topic starter  

やりたいことを具体的に説明させていただきます。
実は簡単ですが、
ファイルを開いて、ファイル内のデータをチェックします。
データが正しいのであれば、そのまま終わります。
データが正しくない場合は、ファイルの中身をクリアし、
  正しいデータを再作成していくということです。
確かに、ファイルをクローズして、
  再オープンするときにTRUNCATE_EXISTINGを指定すれば、できますが、
ファイルをクローズせず、クリアできるのかを知りたいです。

瀬戸っぷ さんが提示した方法をやってみます。


返信引用
佐倉
 佐倉
(@佐倉)
ゲスト
結合: 21年前
投稿: 43
Topic starter  

さすがですね。
SetFilePointer(hFile, 0, NULL, FILE_BEGIN);
SetEndOfFile(hFile);
で、完璧にクリアしました。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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