Tera Termマクロには任意の区切り文字で文字列を分割出来る"strsplit"というコマンドが用意されています。 ただし、これはバージョン4.67以降でないと使えません。
バージョンアップが出来ない環境において、文字列を区切る方法です。 以下の例は、カンマで区切られた文字列を分割して、1ワードずつ取り出す、アフィリエイトのリンクを踏んで下さいと言わんばかりのマクロです。
サンプルソース;分割対象の文字列 TITLE = 'VISAといえば' STRING = '三井,住友,VISAカード'
call GetWord messagebox WORD TITLE
call GetWord messagebox WORD TITLE
call GetWord messagebox WORD TITLE
end
:GetWord ;文字列の長さを strlen STRING LEN_ALL = result
;文字列から最初のカンマの位置 strscan STRING ','
;カンマが見つからない場合は区切らない if result = 0 then WORD = STRING else ;カンマ区切り1ワード目の最後の位置 LEN_WORD = result - 1
;カンマ区切り2ワード目以降の長さ LEN_REST = LEN_ALL - result
;カンマ区切り2ワード目以降の最初の位置 HEAD_POS = result + 1
;カンマ区切り1ワード目を変数"WORD"に格納 strcopy STRING 1 LEN_WORD WORD
;カンマ区切り2ワード目以降を変数"STRING"に格納 strcopy STRING HEAD_POS LEN_REST STRING endif return
参考までに、"strsplit"コマンドを使うとここまでシンプルになります。 サンプルソース2;分割対象の文字列 TITLE = 'VISAといえば' STRING = '三井,住友,VISAカード'
call GetWord messagebox WORD TITLE
call GetWord messagebox WORD TITLE
call GetWord messagebox WORD TITLE
end
:GetWord ;1つ目のカンマで分割 strsplit STRING ',' 2 WORD = groupmatchstr1 STRING = groupmatchstr2 return
|
Selection | File type icon | File name | Description | Size | Revision | Time | User |
|