ファイルがアスキーかどうかしらべるには


風邪  2004-03-19 01:42:01  No: 7742  IP: [192.*.*.*]

お願いします..

編集    削除
にしの  2004-03-19 02:39:21  No: 7743  IP: [192.*.*.*]

1文字ずつ読み込んで、#$00〜#$7F以外の文字コードがあったらアスキーでないとすればよいかと。

編集    削除
たかみちえ  URL  2004-03-19 02:47:38  No: 7744  IP: [192.*.*.*]

Perlでは、ファイルを読み込み
先頭付近(リファレンスには1ブロックと書いてありますが…)をしらべ、30%以上がテキストではない文字(コントロールコードやNULLなど)ならば、バイナリファイルと判断するそうです。
これだけだと、かなりの確率で日本語の書かれたテキストファイルもバイナリファイルと見なされるかもと書いてあります(JPerlでは対処されてるそうですが、JPerlはしらないのでわかりません)。
  実際には、
・NULLが入っていても問題としない(コードによってはNULLが入っているので)
・ByteType関数でLeadBytesと判断された文字はカウントしない
  などすれば、精度は上がるでしょう。

  もっといい方法があるかもしれませんが(-_-;)

  Delphiでこれをするには、TFileStreamなどで読み込み、一個ずつバイトを調べていくと良さそうです。

編集    削除
にしの  2004-03-19 03:05:28  No: 7745  IP: [192.*.*.*]

アスキーは0〜127ですので、制御コードもアスキーです。
アスキーでないことを確認するには、1バイトずつ読み込んで、上位1ビットを調べればできます。

編集    削除