#分割くん辞書
#(call,分割くん,分割する文字列[,区切文字列[,最大分割数[,空要素分割可否]]])
#・splitと違うところ
#空要素分割を有効にしたとき、該当する結果にあたる変数がクリアされた状態になる
#(split,あ★★い,★,0,1)の(S1)は存在が1でlengthが0
#(call,あ★★い,★,0,1)の(S1)は存在が0でlengthが0
#事前設定
@分割くん_結果接頭辞
分割結果
#[通常は変更不要]
#結果が(【文字列】の数)、(【文字列】0)、(【文字列】0)~に入る
#分割くん使用後にこれを変えると「分割くん」使用時に前の結果が自動で消されない
#適宜(call,分割くん_結果消去_本体,【消したい変数名の接頭辞】)をしてください
@分割くん_一時変数名
分割くん_一時変数
#[通常は変更不要]
#同じ名前の変数があると中身が消され、同じ名前が*や@にあると誤動作します
*テスト表示
:\_q\b[2]%property[baseware.version]
里々 (里々のバージョン)
\f[bold,1]試験内容\f[bold,0]
(試験内容)
\f[bold,1]split\f[bold,0]
返り値: (split,(試験内容))
(times,(Sの数),S(C0):(S(C0))\n)
\f[bold,1]分割くん\f[bold,0]
返り値: (call,分割くん,(試験内容))
(times,((分割くん_結果接頭辞)の数),(分割くん_結果接頭辞)(C0):((分割くん_結果接頭辞)(C0))\n)
@試験内容
焼きイカ風味カルビ味ソイソース,イカ,0,1
@分割くん
(when,(Aの数)==0,引数の個数が正しくありません。,
(nop,(分割くん_準備))((分割くん_結果接頭辞)の数)(vncall,set,(分割くん_一時変数名),nop、)
)
*分割くん_準備
$(分割くん_一時変数名)=(分割くん_結果消去)
$(分割くん_部品A)【タブ】0
$(分割くん_部品B)【タブ】(A0)
$(分割くん_部品C)【タブ】(分割くん_部品B)
>分割くん_終了【タブ】(vncall,length,A0)==0
$(分割くん_部品B)【タブ】
$(分割くん_部品C)【タブ】
>分割くん_本体A【タブ】(変数「A1」の存在)==0
>分割くん_本体A【タブ】(vncall,length,A1)==0
>分割くん_本体B
*分割くん_本体A
$(分割くん_一時変数名)【タブ】(分割くん_繰り返し1)
>分割くん_終了
*分割くん_本体B
$(分割くん_一時変数名)【タブ】(分割くん_繰り返し2)
$(分割くん_一時変数名)【タブ】(分割くん_部品D)
>分割くん_終了
*分割くん_終了
$(分割くん_結果接頭辞)の数【タブ】(calc,((分割くん_結果接頭辞)の数)+1)
@分割くん_繰り返し1
(while,(vncall,length,A0)>(C0),
(vncall,set,分割くん_部品E,分割くん_部品F)φ
(vncall,set,分割くん_部品A,C0)
)
@分割くん_繰り返し2
(while,(分割くん_部品G)&&(C0)<(vncall,length,A0),
(when,(分割くん_部品H)==0,
(分割くん_部品I),
(when,(変数「A3」の存在)==0||(A3)!=0,
(分割くん_部品J),
(when,(分割くん_部品K)==0&&(length,(分割くん_部品L))>0,
(分割くん_部品J)
)
)
)
(vncall,set,分割くん_一時変数名,C0)
)((分割くん_一時変数名))
@分割くん_部品A
(分割くん_結果接頭辞)の数
@分割くん_部品B
(分割くん_結果接頭辞)((分割くん_結果接頭辞)の数)
@分割くん_部品C
(分割くん_結果接頭辞)(han2zen,((分割くん_結果接頭辞)の数))
@分割くん_部品D
(when,(A2)!=0&&(vncall,length,A2)>0,(vncall,set,分割くん_部品B,分割くん_部品M))
@分割くん_部品E
(分割くん_結果接頭辞)(C0)
@分割くん_部品F
(vncall,at,A0,C0)
@分割くん_部品G
(when,(A2)!=0,(calc,((分割くん_結果接頭辞)の数)+1<(A2)),1)
@分割くん_部品H
(vncall,count,A1,分割くん_部品F)
@分割くん_部品I
(vncall,set,分割くん_部品B,分割くん_部品N)(vncall,set,分割くん_部品C,(分割くん_部品B))
@分割くん_部品J
(vncall,set,分割くん_部品A,分割くん_部品O)
@分割くん_部品K
(vncall,count,A1,分割くん_部品L)
@分割くん_部品L
(vncall,at,A0,分割くん_部品P)
@分割くん_部品M
(when,(vncall,count,A1,分割くん_部品Q)==1&&(A3)!=0,(vncall,substr,A0,分割くん_部品R),(vncall,substr,A0,(分割くん_一時変数名)))
@分割くん_部品N
(分割くん_部品S)(分割くん_部品F)
@分割くん_部品O
(calc,((分割くん_結果接頭辞)の数)+1)
@分割くん_部品P
(calc,(C0)+1)
@分割くん_部品Q
(vncall,at,A0,(分割くん_一時変数名))
@分割くん_部品R
(calc,((分割くん_一時変数名))+1)
@分割くん_部品S
(when,(変数「(分割くん_部品B)」の存在)==1,(vncall,substr,(分割くん_部品B)))
@分割くん_結果消去
(vncall,分割くん_結果消去_本体,分割くん_結果接頭辞)
@分割くん_結果消去_本体
(times,((A0)の数),
(vncall,set,分割くん_結果消去_部品1,nop、)φ
(vncall,set,分割くん_結果消去_部品2,nop、))φ
(vncall,set,分割くん_結果消去_部品3,nop、)
@分割くん_結果消去_部品1
(A0)(C0)
@分割くん_結果消去_部品2
(A0)(han2zen,(C0))
@分割くん_結果消去_部品3
(A0)の数