• ベストアンサー

バイナリファイルの区別

バイナリファイルか否かを判断するには 何をみたらよいのでしょうか? そもそもバイナリファイルって何?な状況なのですが、 自分が思っているのは01で表してそれを16進表記したもの なのかな??と思ってます。 単にテキストファイルを16進表記した場合と比べて、 これは間違いなくバイナリファイルだ、と特定できる 条件のようなのも教えていただければ幸いです。

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

  • ベストアンサー
  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.4

テキストファイルとバイナリファイルの違いを 定義で語ると、結構高度なコンピュータ技術の 話になります。 大雑把に言って、テキストファイルとは、文字 で表すことの出来るコードが入ったファイル、 ということが出来ますが、これがまた奥が深い。 例えば、日本語のテキストファイルを英語しか 扱えないOSで読むとバイナリファイルと見られる でしょう、ということです。 文字が表せる、と言っても文字コードというもの は何種類もあります。例えばShift-JISというコー ドで書かれたものは、Shift-JISが扱えないソフト から見たら、殆どバイナリコードです。 文字で表せる、ということは文字以外のデータは テキストではありません。WordとかExcelはテキス ト混じりのバイナリファイルと言えます。制御用 のコードが入っているためです。 まあ、このようにテキストファイルとは、特定の 環境で特定のソフトで、かろうじて成立する世界 の狭い形式と言うことが言えます。 世界中でテキストファイルというものは存在しま すが、世界中で違うものと言っても過言ではあり ません。勿論、OSが違えば違うケースもあります し、同じ規格を採用しているまったく違うOSもま た存在します。

その他の回答 (4)

  • pick52
  • ベストアンサー率35% (166/466)
回答No.5

簡単にいってしまえば、テキストデータもバイナリデータの一種です。 コンピュータは文字列を文字の集合体として扱っています。 コンピュータにとって文字というのは特定の数値データに過ぎません。 この数値をアプリケーション側が読み取った際にそのアプリケーションが 認識できるエンコード表に従って文字として表示しているだけです。 そのアプリで読み取れないデータはすべてそのアプリにとっては ただのバイナリデータで、読み取れるデータは人間にとっては テキストデータとなります。 因みに、コンピュータにとっては数値と数字は別物です。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.3

たぶん、Windows というものをご使用だという前提で書いています。  非常におおざっぱな言い方ですが、拡張子(ファイル名の後半部分)が、 .txt になっているものがテキストファイルです。  それ以外は、バイナリファイルと思っても、ほぼ間違いはありません。  一般的にバイナリファイルは、それ専用のアプリケーションソフトウェアで利用することを前提として作成されているファイルです。 専用のソフトウェア以外では、まったく意味がないものと考えて良いと思います。  専用のアプリケーションを区別する、ひとつの手段が拡張子です。 ご参考 http://www.geocities.co.jp/SiliconValley-SanJose/5780/data-07.html

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.2

メモ帳で読んでみる。拡張子を無視して無理やり読み込ませれば、 メモ帳は大概のファイルを開くことが出来ます。 で、読めればテキストファイル。読めなければバイナリファイルです。 正確に言えば違うんでしょうけど、判断に困るような場合はこの方法で 大概判断がつきます。ちなみにこの方法ではワード文書、エクセルブック もバイナリファイルに分類されます。

sakuranb22
質問者

補足

ためしにエクセルファイルを秀丸で無理矢理開いてみました。 変な文字とか出てきたんですが、これでバイナリファイルと言えるんですか? また、この変な文字は全てアスキーコードで表すことは出来るんでしょうか?

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

まず、教えていただきたいのですが、・・・  今回のご質問の目的や、用途は何でしょうか。  (※ご質問者様の、お答えしだいで、回答内容がことなります。)  よろしくお願いします。 --

sakuranb22
質問者

補足

用途は特にないです。 開いたファイルがバイナリファイルかテキストファイルかの 区別をつけるには何を見ればよいのか、ということです。 バイナリファイルも見ようによってはただの文字列の羅列 にしか見えず、バイナリファイルに見えない場合も あるのではないか?ということです。 何かプログラムとかそういうのじゃないです。 PC初心者なので。

関連するQ&A

  • バイナリファイルの編集

    stirling,bzなどのエディタを用いて、バイナリファイルを編集しようとしています。 テキスト(a.txt)のデータをバイナリファイルにコピペしようとしたのですが・・・ テキストで「ff ff ff ff」と書いてあったデータが、バイナリファイルにコピペすると「4646~」というように変換されてしまいました。 バイナリファイルでも「ff ff ff ff」とコピーしたい場合はどのようにすれば良いのでしょうか?

  • 強制的にASCIIファイルがバイナリファイルになってしまうのでしょうか

    強制的にASCIIファイルがバイナリファイルになってしまうのでしょうか? 海外のドメイン登録・webスペースサービスを利用しています。 汎用CGIをそこのcgi-binに上げたところ動作しませんでした。 理由は「cgiファイルがバイナリファイルになっているから」とのこと。 FTPソフトで送信する時には .cgi のファイルはテキストファイルとして転送する設定になっています。 また他の海外のホスティングを使用した時にはこのようなことはありませんでした(今回は同一ドメインで別のホスティングに移行したもの)。 質問ですが 1 FTPソフトでは.cgiファイルがテキストとして送信できるようになっているのになぜ、サーバーに上がったらそのファイルはバイナリファイルに勝手に変換されてしまっているのでしょうか? 2 サーバーに上がっているファイルを直接、自分自身でほんとうにバイナリなのか、アスキーなのか確認する方法はありますか? 3 具体的にどのようにしたら「絶対に間違いなく」.cgiファイルをアスキーファイルとして転送することができますか? FTPソフトはホームページビルダーの「ファイル転送」を使用しています。 設定は間違いなく.cgiはテキスト、となっています(従来のホスティングでは一切問題がなかったのでソフトのせいとは思えません)。

  • バイナリファイルの特定のバイナリ値をカウントする方法は?

    お世話になります。 質問です。 バイナリファイルから特定のバイナリ値を抽出して、 1バイト単位でカウントする方法はありますか? (例) バイナリファイル"FileA"のバイナリ値0xffをカウントする。 <FileAの中身> 0xfe 0xff 0xff 0x12 0x00 0x00 0xff 0x01 0x00 ↑のファイルから0xffを3カウントした。 $ hexdump -v <ファイル> | grep <ターゲットの値> | wc -w (質問を書いてる現在、linux環境が無いので記憶を頼りに書いてますので間違ってると思います) ↑のようにのような方法は思いつきましたが 「一度テキストにして~grepにパイプして~wcにパイプする」となると、 ファイルサイズに依っては処理に数時間費やしてしまいます。 なので、以下の条件を満たす方法を探しています。 (1)処理の無駄が少ない(バイナリを直接探す方法等) (2)できるだけシンプルにコマンドライン一行で実現 (3)スクリプトファイルを含むソースファイルを作る作業無し よろしくお願いします。

  • ExcelVBA バイナリファイルの全半角の判断

    Excel VBAでテキストファイルを、バイナリファイルとして読込み シートに出力しようとしています。 しかしテキストファイルには全角半角が混ざっており、うまく出力できません。 Dim buf As Byte 上記の変数に読込んだバイナリデータ1バイト分を入れるとして、 これが半角文字なのか、全角文字の半分なのか、判断することはできるのでしょうか。

  • バイナリーファイルの変換

    CCDカメラで取り込んだ画像ファイルがどうやらバイナリーで出力されているようなのです。(拡張子は.dat)テキストで読めるようにしたいのですが、どのように処理すればよいのでしょうか?Cプログラムは多少組めます。参考図書などあるようでしたらご教示いただけたら幸いです。よろしくお願いいたします。

  • 入力ファイルをバイナリにする利点

    CSV形式の入力ファイルをテキストではなく、バイナリのCSVに変換して利用する利点てなんでしょうか? つまり、とあるプログラムで「.csvファイル」を、エディタで開くと文字化けする「拡張子なし(または.dat)ファイル」に変換してからそれを入力ファイルとしているのですが、素人の自分から考えると、テキスト形式で作ったCSVファイルをそのまま入力ファイルにすればいいんじゃないかと思ってしまいます。 バイナリの方が読み込み、書き込みが速くなるのでしょうか? またはバイナリでないとできないことがあるのでしょうか? ポインタなどが関係しているのでしょか? ちなみにその開発環境はVC++です。

  • バイナリコードを見つけ出すツールを教えてください

    私のパソコン内にテキストコードのみで構成される拡張子がtxtやhtmlのファイルが大量にあります。 パソコンがウイルスに感染すると、パソコン内のファイルがいつの間にか変更されていることがありますが、変更されているかどうかを調べるためにバイナリコードを見つけ出すツールを探しています。 テキストコードのみで構成されていたファイルの中身が変更されていたなら、バイナリコードが付加されているはずなので、バイナリコードを見つけ出すことが出来れば、そのファイルの中身が変更されていることが分かるという判断です。 notepadでバイナリファイルを開くと、黒い四角や難しい漢字、半角のカタカナなどが表示されるので、とりあえず その黒い四角 をコピーして 試しに GrepReplaceで、検索文字列の欄に 黒い四角 をペーストして、あるファイル(テキストコードのみのファイルにバイナリファイルを結合させたファイル)の中身を検索しましたが、 黒い四角があるはずなのに、GrepReplaceでは残念ながらヒットしませんでした。 バイナリコードである 黒い四角 を検索文字列にして検索をすると、的確にヒットするツールがあれば教えてください。 またバイナリコードが含まれているかどうかについて、数多くのファイルを一括して調べることが出来るツールがあれば教えてください。

  • バイナリファイルの通信について

    Webシステムの開発を検討しています。 サーバはJavaで開発し、クライアントはIEなどのWebブラウザではなく、VBのクライアントアプリケーションで構築しようと考えいます。 その際、問題となっている事は、バイナリファイルの通信方法です。 例えば、クライアントが起動した際にサーバからイメージファイルを送信する方法など。 バイナリファイルをテキスト文字列に変換して送信することはできると思うのですが、他には、クライアントとサーバで言語が異なる場合、一般にどのようなバイナリファイルの送信方法があるのか、色々比較した上で決めたいと思っています。 色々な送信方法や、参考Webサイトなど、ご存知の方がいらっしゃいましたらご教授願います。

  • [VBS] 16進数でバイナリファイル出力したい

    すいません、教えて下さい。 VBSを利用して16進数にてバイナリファイルを生成したいです。 例えばSJIS文字コードの文字列"あ"の場合だと16進数では"82A0"です。 その"82A0"を指定してバイナリファイル出力を行いたいです。 自分で色々と試しましたが、何故か出力ファイルの結果がバイナリで"81 45 A0"となってしまい 結果的に"あ"が表示されません、、、。 目的としてはVBSでビット演算子の論理和による暗号化を行いたいです。 申し訳ありませんが、ご教示頂ければ幸いです。

  • JAVAによるテキストファイルの読込み

    Javaでテキストファイルの読込みを行いたいのですが、 SJIS、EUC、UTFなど代表的な文字コードは問題なく読込み、 バイナリファイルを読込んだ場合、エラーと判定したいのですが なにか良い方法はありませんか? 例えば、ファイルの文字コードを取得したときに ファイルがバイナリファイルか否かを判定することは可能でしょうか。

    • ベストアンサー
    • Java