• ベストアンサー

ファイル操作

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

noname#5252
noname#5252

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

  • ベストアンサー
回答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

  • MIMEとバイナリデータの読み方

    バイナリファイルの中、MIME boundary1の後、ヘッダーの部分のXMLで書かれたテキストファイルあります。そのXMLヘッダー文をパースしたい。 バイナリファイルのほかのところにMIME boundary2の後バイナリ形式のデータあります。 Googleで調べたけど、なにかは見つかったけど、理解できず困っています。 バイナリファイルを一バイトづつ読んで、Integer.toHexString()を使うとASCIIの形でXMLの部分はそのまま (フォーマットなしで)、バイナリデータの分は化けた表示されます。 だいたいのアウトラインでよいです。やり方ご存知の方、教えてください。 (1)boundary1の後書かれたXML式データを読む方法 (2)boundary2の後、決まったキーワードが入っていたら、そこから決まったバイト数までのバイナリデータを読む方法 その決まったキーワードと決まったバイト数はヘッダーのXML内に書かれています。

    • ベストアンサー
    • Java
  • 読み込んだファイル

    読み込んだファイルがテキストファイルかバイナリファイルかを プログラム上でわかる方法はありますでしょうか?

  • 添付ファイルについて

    このカテゴリで質問でいいのかわかりませんが、ご存知の方がいらっしゃいましたら教えて下さい。 メールの添付ファイルで拡張子が*.twoというファイルが送られてきました。 メールの本文には何もかかれていません。 このファイルをバイナリエディタなどで開いてヘッダなどに何かないかな?と思ってもやはりテキストで読める部分もありません。 これは何の形式のファイルなんでしょう? ご存知の方いらっしゃいましたらよろしくお願いします。

  • バイナリファイルの操作(配列の操作について)

    こんにちは。 大変お世話になっております。 配列要素の先頭[0]から[5]までを文字列N、[6]から[1029]までをバイナリデータの計1030バイトの配列要素を使用しています。 [現在行なっている操作方法] 1. Buf[1500]とBuff[1500]を用意 2. fread関数により、Bufに1024バイトずつ格納 3. sprintf関数により、Buffの先頭[0]から[5]まで文字列挿入 4. strcat関数により、BuffとBufを結合 と言う形をとっています。 そこで、sprintfにて先頭から[5]までの文字列を挿入後、先頭から[5]までの配列要素を削除(不要になるため)し、バイナリデータのみにしたいのですが、何か方法はありますでしょうか? NNNNNNDDDDDDDDDDDDDDDDD・・・・・DDDDD←1029番 から NNNNNNを削除し、 DDDDDDD・・・・・DDDDD のみにしたいと思っています。 よろしくお願いします。

  • テキストファイルのデータからバイナリを作りたい

    現在、テキストデータとしてCSVファイル1つあたり8バイトのデータが1000個ほどのデータが書かれているファイルがあります。このデータをバイナリファイルへ数値も変換して行きたいと思っています。 たとえば1個目のデータ”12345678”というテキストデータをバイナリの"12345678"に変換したらそれを0x00番地に並べて、そして2個目のデータ”87654321”というデータをバイナリにしたらそれを0x90離れた場所に置いていき、それを1000回繰り返して、結果をバイナリファイルで出力したいのですが、何か簡単にできるフリーソフトなどありませんでしょうか? また、プログラムとかでも簡単にできるのならそうしたいのですが、どうしたらよいか教えていただけないでしょうか?

  • ファイルの末尾を指定バイト数削除するには

    ファイルの末尾を指定バイト数削除する方法で ・プログラミングを要するもの ・バイナリエディタを用いる方法(※) ・専用ツール(ファイル末尾カッターなど)を用いる方法 以外をご存知でしたら教えてください。 ※バイナリエディタではないソフトのバイナリエディタ機能でできるよ、  という場合は是非教えてください

  • PDFファイル中のテキストデータを簡単に削除する方法

    PDFファイル中のテキストデータを簡単に削除する方法はありませんでしょうか? 具体的には、スキャナーによって取り込んだ画像ファイルをPDFファイルにまとめてあり、そこに、後からテキストオブジェクトとしてヘッダー、フッターが追加されているPDFファイルがあります。 このPDFファイル中のヘッダー、フッターを全て削除したいのです。 現状では、Acrobat の TaouchUpテキストツールを使って、1ページずつ削除するしか方法が思いつきません。 ページ数が膨大なので、この方法はあまりにも現実的ではありません。 何か良い方法、または、便利なツールなどご存知でしたら教えてください。 なお、トリミングでヘッダー、フッター部分を全て隠してしまおうともしたのですが、元のスキャン画像が、その部分にまでかぶっているページも多いので、それは断念しました。 よろしくお願いします。

  • wmvファイルヘッダー情報の読み出し方法

     お世話になります。  Perlでwmvファイルのヘッダー情報、特にテキストで書き込まれた部分(コメントやファイル名)などを読み取ろうとしているのですが、うまく行きません。wmvファイルをバイナリエディター等で開いてみると、テキストの部分は暗号化されているように見えます。実際には、どのようなプログラミングをすればよいのでしょうか?  ご教授、よろしくお願い申し上げます。

  • バイナリファイルの比較について困っております

    FDにあるファイルとHDにあるファイルをバイナリで開き 1バイトずつ比較を実施したいと考えております。 バイナリでファイルオープンまでは何とか出来たのですが、 ファイルを読み込み、1バイトずつ比較する方法が判りません。 どなたか御教授御願い致します。

  • バッチによるテキストファイル操作について

    バッチファイルにて、テキストファイルの任意の行を削除したいのですが、コマンドはどのように記述すれば良いでしょうか? 初心者の為、方法が良くわかりません。  具体的には5000行のテキストファイルから1~20行目を削除したいと考えています。 ちなみにOSはXPと2000の両方です。 以上、どなたか宜しくお願いいたします。