お願いします..
編集 削除1文字ずつ読み込んで、#$00〜#$7F以外の文字コードがあったらアスキーでないとすればよいかと。
編集 削除Perlでは、ファイルを読み込み
先頭付近(リファレンスには1ブロックと書いてありますが…)をしらべ、30%以上がテキストではない文字(コントロールコードやNULLなど)ならば、バイナリファイルと判断するそうです。
これだけだと、かなりの確率で日本語の書かれたテキストファイルもバイナリファイルと見なされるかもと書いてあります(JPerlでは対処されてるそうですが、JPerlはしらないのでわかりません)。
実際には、
・NULLが入っていても問題としない(コードによってはNULLが入っているので)
・ByteType関数でLeadBytesと判断された文字はカウントしない
などすれば、精度は上がるでしょう。
もっといい方法があるかもしれませんが(-_-;)
Delphiでこれをするには、TFileStreamなどで読み込み、一個ずつバイトを調べていくと良さそうです。
アスキーは0〜127ですので、制御コードもアスキーです。
アスキーでないことを確認するには、1バイトずつ読み込んで、上位1ビットを調べればできます。