質問: ### 前提・実現したいこと バイナリファイルで0になっている場所をランダムな16進数で埋めたいです ファイルがあるのですが、そのファイルに上書きする形で行いたいです。 ### 発生している問題・エラーメッセージ 方法が全く分かりません、、、 ファイルをopenして書き込むことは分かっているのですが、16進数をランダムに生成するのと、0を判別して書き換える方法が分かりません
回答: 1.1バイト読み込む 2.0か判断する 3.0なら以下の処理を行う 3-1.1~255の範囲で乱数を生成する 3-2.seek、tellを利用してファイルの現在位置を1バイト戻す 3-3.3-1で求めた値を書き込む 4.1~3をファイルが終了するまで繰り返す このような手順でしょうか。 乱数を求めるのはこちらを参照してはどうでしょうか? また、ワークファイルを作成していいのであれば 対象ファイルをファイルA、ワークファイルをファイルBとし 1.ファイルAから1バイト読み込む 2.0か判断 3.0なら乱数を求め、その値を書き込む値とする、0でないならそのまま書き込む値とする 4.ファイルBに書き込む値を書き込む 5.ファイルの最後まで繰り返す 6.ファイルAを消して、ファイルBをファイルAのファイル名にリネームする という方法もありかと思います。