search コマンドの使い方No.00213
ガリ さん 99/07/13 20:20
 
初めまして。search コマンドの使い方で、どうしてもうまくいかないところがあっ
て困っています。

##i = 1
while( ##i <= 19 )
    switch ##i
    case 1
         @wait_str = @aaa
    case 2
         @wait_str = @bbb
      ・
   ・
   ・
    endswitch
    ##i = ##i + 1
endwhile

とやったあとに、
ホストから送られてきた文字列変数 @wait_ln に、上の switch-case 文で定義した
@wait_str が含まれているかどうか確認したくて、
search( @wait_ln, @wait_str ) という事をやっているのですが、この部分で
文法エラーになってしまいます。
search コマンドでこのような使い方は出来ないのでしょうか?
もし出来ないとすれば、他の手段は何かありませんでしょうか?
どなたかご教授ください。
宜しくお願いします。

[ ]
RE:00213 search コマンドの使い方No.00214
かずや さん 99/07/14 07:14
 
>>search( @wait_ln, @wait_str ) という事をやっているのですが、この部分で
>文法エラーになってしまいます。
>search コマンドでこのような使い方は出来ないのでしょうか?
できますよ。
どこで文法エラーがでてるのか分からないので
search関数を使っている部分を見せていただけませんか?

分かり切ってることかも知れませんが、いちおう・・・
searchは関数なので戻り値を処理します
question文などは resultを使いますが、同じように
 search(str1,str2)
  if (result <> "") message "一致?"
とすると、エラーになります。
  #str = search(str1,str2)
  if (#str <> "") message "OK"
または
  if (search(str1,str2) <> "") message "OK"
とすると、正しい使い方です

[ ]
RE:00214 search コマンドの使い方No.00215
ガリ さん 99/07/14 09:09
 
かずやさん、早速のご回答ありがとうございます。
ご指摘の通り、search の戻り値として result を使用していました。
result は「終了コード」であって「戻り値」ではないんですね。
両方を兼ねているものと勝手に思い込んでいました。

# ヘルプにも関数の戻り値の扱い方についての記述が見当たらなかったもので

とりあえず、かずやさんに教えていただいた方法で目的が果たせそうです。
ありがとうございました。

[ ]