DOBON.NET DOBON.NETプログラミング掲示板過去ログ

バイナリを判断するには?

環境/言語:[WindowsXP Access2003]
分類:[その他]

お世話になります。
コモンダイアログでテキストファイルを選択させてテーブルに取り込むプログラムを作成しています。
コモンダイアログのファイルの種類では「テキストファイル(.txt)」と「すべてのファイル(*.*)」を指定しています。

exeファイル等(バイナリ)を選択された場合にエラーメッセージを表示したいと思っていますが私の力量ではどうしていいのか解りません。

ファイル内にNULL文字があったらバイナリファイルとして判断できるみたいな記事を読みました。

すみませんがどなたか知恵を貸していただけませんでしょうか?
よろしくお願いします。
2008/08/22(Fri) 16:24:10 編集(投稿者)

> コモンダイアログのファイルの種類では「テキストファイル(.txt)」と「すべてのファイル(*.*)」を指定しています。
>
> exeファイル等(バイナリ)を選択された場合にエラーメッセージを表示したいと思っていますが私の力量ではどうしていいのか解りません。

テキストファイルとバイナリファイルの判別はできないんじゃないでしょうか。
ただ、拡張子が100%正しいのであれば、拡張子での判別が可能だと思います。

> ファイル内にNULL文字があったらバイナリファイルとして判断できるみたいな記事を読みました。

その記事の方法は存じ上げませんが、その方法は試してみられたのですか?
回答ありがとうございます。

私も試してみたいのですが・・・
お恥ずかしい話、どのようにしたらいいのかわかりません。
アドバイスいただけませんでしょうか?

宜しくお願いします。
テキストファイルとバイナリファイルの「確実な」判別方法はないのでは?

> 私も試してみたいのですが・・・
> お恥ずかしい話、どのようにしたらいいのかわかりません。
> アドバイスいただけませんでしょうか?

拡張子による判定方法でしたら、
テキストファイルの拡張子に当てはまらないものは、
全てバイナリファイルと判定するってことです。
ただし、この方法だと色々と問題が出てきます。

>ファイル内にNULL文字があったらバイナリファイルとして判断できるみたいな記事を読みました。

どこでお読みになったのでしょうか?
実際に記事を読ませてもらえると、試してみることができるのですが…。

とりあえず想像です。
ファイルの先頭から数キロバイトを読み込んで、
制御コードの割合で判定ってことになるんでしょうか。
■No22803に返信(もょもとさんの記事)
>ファイル内にNULL文字があったらバイナリファイルとして判断できる
>みたいな記事を読みました。
>
> どこでお読みになったのでしょうか?
> 実際に記事を読ませてもらえると、試してみることができるのですが…。
>

Visual SourceSafe でのバイナリ ファイルの扱い
http://msdn.microsoft.com/ja-jp/library/cc464434(VS.71).aspx

「バイナリ ファイルがテキスト ファイルとして識別される可能性はあります。」
とあるように確実とはいえませんが、
レアケースなので、この方法でもいいかも知れません。

DOBON.NET | プログラミング道 | プログラミング掲示板