- 729 名前:think ◆MM0nnAOCiQ mailto:sage [2009/05/20(水) 02:21:42 ID:EnCka/f00]
- >>723
「グローバル変数にCSV形式で格納した値を$TSTして、"$SET(name\d=value)" を$ADDLST→$LSTでeval()を模倣」という処理でしょうか。 変数の値を解放できない($RMLSTがない)、のが厳しい…。 「CSVを利用して配列」というアイデアは前からあったので、それをフィルタにしてみました。 [Patterns] Name = "Array ver.0.2b" Active = FALSE Limit = 256 Match = "test" "$SET(ArrayList=a=val1,val2,val3,val4\nb=1,3,5,7,11,13)" "$SET(CallArray=a[2])" "" "$TST(CallArray=([a-z_][0-9a-z_]+)\9$SET(VarName=\9)\[([0-9]+)\9$SET(Key=\9)\])" "$SET(CallArray=)$SET(Num=0)" "$TST(ArrayList=([^\r\n]+[\r\n]+{1,*})++$TST(VarName)\=((^$TST(Num=$TST(Key)))[^,]+,$LST(increment))+([^,]+)\9*)" "$SET(Value=\9)" Replace = "$GET(VarName)[$GET(Key)]="$GET(Value)"" $SET(CallArray=a[2]) で配列を呼び出し。 例えば、"a[2]" を "b[0]" に変えると2行目で定義した配列bを呼び出します。 「[,\r\n] を値に持てない」という不具合を解消すれば、実用出来そうです。エスケープ処理はCSV準拠でいいかな…?
|

|