魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

FreeBASIC の日本語標準入力問題について

ちょっと前「I love FreeBASIC」という記事を書いた。誰が無理だってぇ。

f:id:fxrobot:20161009013305j:plain

そこで、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 で日本語入力ができるぞっ!