• ベストアンサー

ファイル操作

テキストとバイナリが混在しているファイルから、ヘッダ部(4Byte)を削除する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

>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 ではどうでしょう?

noname#5252
質問者

補足

出来ました! ありがとうございます。 この後別の変数に9Byte目からを読み込むのも、同じにやれば良いのでしょうか? その時も読み込む変数をByte型の配列で宣言するのでしょうか? (ヘッダ部の後にもテキストとバイナリが混在しています。)

その他の回答 (3)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.4

以前にMPEGのファイル情報を書き換えたいという内容の履歴があります。 MPEGはバイナリであり、結果的にMPEGファイルのフッダ情報を書き換えるものでした。 よろしかったら参考にしてください。 ちなみにバイト型で取得するなら dim bytHedBuff(7) as byte ← ヘッダ用 dim bytValBuff(8) as byte ←ヘッダ以下の本内容用 の二つを宣言しておいて、get で取得すると、その分だけ値が取れます。 簡単に言うと要領確保してそれにGETしてあげたら、それだけしか取得しません。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=154509
noname#5252
質問者

お礼

出来ました!   & 理解しました... 回答を下さった皆さん、どうもありがとうございました。

  • taka2456
  • ベストアンサー率29% (36/122)
回答No.2

バイナリーモードでファイルをオープンして 最初の4バイトを飛ばしてのこりを出力すればいいのでは 自信ないので他の方の意見も参考に

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

バイナリファイルとしてファイルの内容を読み出し、5バイト目以降を別のファイルとして保存してください。

noname#5252
質問者

補足

そのようにしているのですが、バイナリエディタで確認すると、 変な値になってしまっています。 例えば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) では、駄目なんでしょうか? 後、ヘッダー部のサイズ分取得した後、その次のバイトから 続けて取得するにはどうしたら良いんでしょうか?

関連するQ&A