掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
InputB関数でエラーが出ます (ID:102187)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
話を聞く限り、そのファイルのほうに問題があるようです。 そのファイルのデータ中に何か問題のある箇所があるんじゃないでしょうか。 「コピー&ペーストすると問題なくなる」事から、不正な文字が含まれている可能性が高いです。 また、そうして作った問題ないテキストファイルのほうは、ファイルサイズが小さくなっていませんか? 一度、バイナリエディタあたりで問題のファイルを開いてみて何が問題なのか検証する事をお勧めします。 (で、問題がわかったらレスを書いていただけると後に誰かが助かります) なお、VB6/VBA/VBSが標準で扱える文字コードは 「Shift JIS」(=シフトJIS、S-JISとも)と、 「Unicode」(この場合指すのはUTF-16)です。 そのファイルのテキストに、これ以外のものが含まれているとファイル入出力系の関数やステートメントで問題が発生する可能性はあります。 でも、今回の場合Input"B"ですし・・・文字としてではなく、単なる2進数の塊(バイナリ)として扱っているはずなので問題にはなりそうにないのですが。 私はコンソール系には疎いのでEGさんの言う「^Z」というのがどれにあたるのかは存じませんが、これは文字コード中に存在する「制御文字コード」(文字以外の見えないコード)の一種だろうという事はわかります。 文字以外を示すコードなので表示はされず目には見えないものです。 (目に見える身近な例では、タブ、改行などが目視できる制御コードの一例です) なお、文字コードとは文字をどういう風に保存して扱うかというルールです。 「第一水準漢字」という言葉を聞いた事はありませんか? (私はPCに触れる前の子供の頃に一般的に聞いたことがありました) この第一水準、第二水準という漢字の選定は、まさに文字コードを作るために行われたものです。 一般的な漢字の一覧表を作り、その文字一つ一つに順番を決め、それらを円滑に符号化する手順が規格化されました。 文字コードは、文字への番号の振り方やその文字の表現方法を規定した規格の事です。 例えばShiftJISでは「あ」を「82A0」という番号で表します。テキストファイルにはこの「82A0」が保存されています。 ですが、JISコードでは「あ」は「2422」という番号で表します。逆に「82A0」はJISコードでは存在しない文字なので勘違いして化けるか無視されるかエラーが発生します。 なおテキストファイルには「どの文字コードで保存されているか」という情報は全く含まれていませんので、メモ帳がShiftJISだと言ったとしても100%鵜呑みには出来ません。 テキストファイルの内部には文字番号の羅列だけが存在します。 各種テキストエディタは文字を表示するのがお仕事ですので、開かれたファイルが「例えどの文字コードとして読んでも正しくない」ものだったとしてもいずれかの文字コードとしてどうにか表示する必要があります。 「ShiftJISとしては正しくない番号が含まれてるけど、他の文字コードでも読めないからShiftJISとして表示」しただけなのかもしれません。 日本語を表す文字コードだけ見ても「ShiftJIS」「EUC」「JIS(旧JIS)」「Unicode」など多数あります。(さらにUnicodeには大量に別形式が存在します) 1つに統合されていれば誰も迷うことはないのですが、歴史上と実用上の問題で複数のルールが同時多発的に一般化しそのまま現在も統一できずむしろ増える一方なのが現状です。 日本語だけの問題ではなく実際に他国でも同じような状況にあり、世界的に見ると多種多様な文字コードが多数存在する状態になっています。 「文字コード」の詳細については以下あたりを参照してください。 http://euc.jp/i18n/charcode.ja.html http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89 http://www.kanzaki.com/docs/jcode.html
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.