- ベストアンサー
ファイル操作
テキストとバイナリが混在しているファイルから、ヘッダ部(4Byte)を削除する方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>Open XX For Binary Access Read As #FileNumber >Buf = InputB(8, #FileNumber) これでは文字列として読みそうなのでバイト配列を使って Dim bytBuf(0 to 7) as Byte Open XX For Binary Access Read As #FileNumber Get #FileNumber,,bytBuf ではどうでしょう?
その他の回答 (3)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
以前にMPEGのファイル情報を書き換えたいという内容の履歴があります。 MPEGはバイナリであり、結果的にMPEGファイルのフッダ情報を書き換えるものでした。 よろしかったら参考にしてください。 ちなみにバイト型で取得するなら dim bytHedBuff(7) as byte ← ヘッダ用 dim bytValBuff(8) as byte ←ヘッダ以下の本内容用 の二つを宣言しておいて、get で取得すると、その分だけ値が取れます。 簡単に言うと要領確保してそれにGETしてあげたら、それだけしか取得しません。
お礼
出来ました! & 理解しました... 回答を下さった皆さん、どうもありがとうございました。
- taka2456
- ベストアンサー率29% (36/122)
バイナリーモードでファイルをオープンして 最初の4バイトを飛ばしてのこりを出力すればいいのでは 自信ないので他の方の意見も参考に
- taka_tetsu
- ベストアンサー率65% (1020/1553)
バイナリファイルとしてファイルの内容を読み出し、5バイト目以降を別のファイルとして保存してください。
補足
そのようにしているのですが、バイナリエディタで確認すると、 変な値になってしまっています。 例えば8Byteのヘッダーを削除した時... 01 00 00 00 00 00 00 00 が取得したいのに、 08 00 0A 00 01 00 00 00 となってしまいます。 Open XX For Binary Access Read As #FileNumber Buf = InputB(8, #FileNumber) では、駄目なんでしょうか? 後、ヘッダー部のサイズ分取得した後、その次のバイトから 続けて取得するにはどうしたら良いんでしょうか?
補足
出来ました! ありがとうございます。 この後別の変数に9Byte目からを読み込むのも、同じにやれば良いのでしょうか? その時も読み込む変数をByte型の配列で宣言するのでしょうか? (ヘッダ部の後にもテキストとバイナリが混在しています。)