FreeBASIC の日本語標準入力問題について
ちょっと前「I love FreeBASIC」という記事を書いた。誰が無理だってぇ。
そこで、FreeBASIC は魅力的な処理系だけど、標準入力からの日本語入力に問題があるという話をした。
そして、その問題に対処する裏技を発見したとも書いた。で、その対処法を書かなかった。誰か突っ込んでくれないかなぁという想いからである。寂しいのである(笑)。
その記事に対し、FreeBASIC の大先生と思しき方から、きみのうんちくを訊いてやろうとお声が掛かった。ぼくはうれしくなって、早速ここに書いている次第なのだ。
と、中身のない話で出だしは十分。で、なんだっけ。
''----------------------------------------------------
Dim s As String
Input "なにかキー入力して下さい: ", s
Print "あなたがキー入力した内容: "; s
Sleep
''----------------------------------------------------
そうそう、FreeBASIC は↑これができない。この s に日本語が入れられない。で、大した方法でもないしけど、ある方法で、うまく行ったのだ。それが↓これ。
''-----------------------------------------
Dim s As String
Open Cons For Input As #1
Print "なにかキー入力して下さい: ";
Input #1, s
Print "あなたがキー入力した内容: "; s
Close
Sleep
''-----------------------------------------
入力装置をオープンして、それに標準入力を割り当てるということ。だだそれだけ。
ひょっとしたらと思ってやってみたら、まぁまぁうまくいったということ。
上のプログラムを実行した結果は以下の通り。
C:\_bas>fbc constes.bas
C:\_bas>constes
なにかキー入力して下さい: こんにちは
あなたがキー入力した内容: こんにちは
C:\_bas>constes
なにかキー入力して下さい: ―ソЫ噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿
あなたがキー入力した内容: ―ソЫ噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿
C:\_bas>
と、こんな感じで、ちゃんとできてる。
この方法でも完璧というわけじゃないけど、まぁ、動いているね。それでよしっ。
ってことで。
きょうから、FreeBASIC で日本語入力ができるぞっ!