TeraTermマクロ文字列処理についてのまとめ

TeraTermマクロでは文字列処理を頻繁に使います。そこで、Tera Termマクロによる文字列処理に焦点あてて解説します。

スポンサーリンク

文字列の長さを調べる

文字列の長さは strlen で調べます。結果はシステム変数 result へ格納されます。

上記のマクロを実行すると、システム変数 result には 3 が格納されます。strlenはバイト単位で長さを返すので、日本語のような2バイト文字では注意が必要です。

上記のマクロを実行すると、システム変数 result には 2 が格納されます。

文字列連結

strconcat

通常、文字列の連結は strconcat を使います。

上記のマクロを実行すると、line1の内容が abc から abcdef に変わります。

sprintf

別の方法では sprintf(sprintf2) も使えます。

strinsert

変わった方法としては、strinsertを使う方法です。strinsert は、ある文字列に別の文字列を挿入します。次のマクロは、line1の長さを調べてline1の末尾にline2を挿入しています。

strjoin

更に変わった方法としては、strjoinを使う方法です。strjoinは groupmatchstr1〜groupmatchstr9 を指定したセパレーターで連結します。次のマクロは空文字(”)でgroupmatchstr1とgroupmatchstr2を連結し、lineに連結した文字列を格納します。

大文字小文字を変換する

tolower

文字列を小文字に変換するためには tolower を使います。次のマクロを実行すると、line1の文字列 AbCdEfg が abcdefg に変わり、line2に格納されます。

toupper

文字列を大文字に変換するためには toupper を使います。次のマクロを実行すると、line1の文字列 AbCdEfg が ABCDEFG に変わり、line2に格納されます。

messageboxやyesnoboxで改行やタブを使う

‘¥n’や’¥t’はそのままでは表示させる事ができません。次のマクロを実行すると’¥n’が改行されず、そのまま表示されてしまいます。

解決する方法はふたつあります。

strspecial

文字列の’¥n’や’¥t’を思い通りに表示させるためには、strspecialで文字列を変換させます。次のマクロを実行すると’¥n’が改行コードとして認識されます。

specialオプションを使う

messageboxやyesnoboxのspecialオプションを使う事により、改行やタブを思い通りに表示させる事ができます。このオプションは、messageboxコマンドの最後のパラメータとして、0以外の値を指定します。ただし、この方法はTeraTermマクロでは推奨されておらず、代わりにstrepecialコマンドの使用が推奨されています。

文字列を比較する

文字列の比較は「文字列が一致するか調べる」を参照してください。

カンマ区切りのフィールドを分割する

CSVファイルのようなカンマ区切りのフィールドを分割して処理する方法は「CSVファイルを使ってTeraTermマクロにパラメータを渡す」を参照してください。

スポンサーリンク

フォローする

スポンサーリンク