プロンプトによる分岐
No.01239
tacyuki
さん 98/10/19 19:48
はじめまして、秀termを使用させていただいています。
いきなり質問なのですが、
getlineによって、向こうから送信されてくる文字列を取得し、その内容によって分
岐処理を行うようなスクリプト等を書いてみたのですが、ターミナルには文字が出力
されているにも関わらず、getlineでの文字列の取得ができるときとできないときが
あります。また、場合によってはgetlineを2つ並べることにより、2つめのgetline
で取得ができるときがあります。このような現象にはどのような原因が考えられるで
しょうか?
現在、煮詰まってしまっているので、どんな些細なことでも教えていただけるとあり
がたいです。
[
△
]
RE:01239 プロンプトによる分岐
No.01240
範子
さん 98/10/20 06:58
sub:getlineの仕様
プロンプトの分岐と聞いてまず思い浮かぶのは、
getlineは行ごとに取得するので、改行コードが送られてこないと
待ち続けます。
たとえば
| 利用する会議室番号を入力してください−−−>
という場合、何か入れるまで改行はこないので取得できません。
でも、この場合は止まってしまいますので違うみたいですね。
その部分のコードを抜き出して具体的に質問してくださるとやはり
回答しやすいと思います。
ちなみに
| getline #a
と文字列を待ち受けている最中に、ファンクションキー割り当てているなどの
別のスクリプト
|FunctionF1:
| #b = "temp"
|return
を実行すると、getlineで受信した行の内容は#aではなく、直前に操作した
変数#bに入ってしまいます。(スタックに積んでいくから)
そんなわけで、この例で言うFunctionF1:のようなものがあれば、それも
関連するかもしれません。
*ちなみに私の対策は、getlineの引数の変数名を#lineで統一して(必要が
あれば、その後で好きな名前の変数に代入する)、途中実行するスクリプト
の末尾に
#line = #line
という1行を入れます。
こうすると、直前に操作した#lineにgetlineの結果が必ず入るようになり
ます。
[
△
]
RE:01239 プロンプトによる分岐
No.01243
秀まるお
さん 98/10/21 10:28
getlineを使うよりも、wait文かswitch文を使った方が楽かと思います。
[
△
]