ここから本文です

Teratermマクロで文字列の比較をしたいです。 strcompareを使って複数の文字列と...

アバター

ID非公開さん

2018/4/1120:57:18

Teratermマクロで文字列の比較をしたいです。
strcompareを使って複数の文字列と比較するにはどのようにすれば良いでしょうか?
strcompare aaa 'xyz'
if result > 0 then
'

成立したときの処理'
else
strcompare aaa 'uvw'
if result > 0 then
'成立したときの処理'
endif
endif
↑変数aaaの中の文字列と、文字列xyzと文字列uvwと一致するか比較したいです。
3つ4つくらいまで入れ子にしたいこともあります。
しかも、最後のendif2つがかなりいけてない感じがしてとてもいやです。
数字なら==とかで簡単に比較できるのに文字になるととたんに複雑になる気がしています。
もし根本的に勘違いしているところがあれば併せてお願いします。

閲覧数:
835
回答数:
2

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

uso********さん

2018/4/1212:05:16

一致比較なら、私なら長めの文字列を
利用する戦略を取るかなぁ。
https://ttssh2.osdn.jp/manual/ja/macro/command/strscan.html

;;#8←aaa内に絶対に存在しない文字;;
strscan #8'xyz'#8'uvw'#8 aaa
if result==2 then ;;xyz??;;
  logwrite 'xyz'
elseif result==6 then ;;uvw??;;
  logwrite 'uvw'
endif

>文字になるととたんに複雑[面倒]
strsplit,strjoinとか見てると如何にも
簡易マクロだなぁという気にもなります
が、Ver4.72まで配列変数すら無かった
ので まぁ致し方無いかも。関数定義や
ローカル変数の概念も無く、goto/call
[gosub]/includeのレベルでしか部品化
も対応していないような状態ですし。

アバター

質問した人からのコメント

2018/4/13 21:51:36

なるほど。。。
奥が深い。。。

発想によって様々な方法があることを思い知らされました。
私にとっては決して簡易マクロではありませんが、
凡人の発想にではできなそうなことも、
できる人が考えればできるようになってしまうのだと実感いたしました。

これからも精進いたします。
ありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

roc********さん

2018/4/1210:47:55

一致の比較がしたいなら
if result=0
と書きます

一致しているときだけ処理するなら、elseは無くても問題ないのでは?

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる