06/04/29 09:49:37
>>45
Delphiは2レスもかかるのかよw ポインタとか再帰下降とか難しく考えすぎじゃね?
>>30の仕様にはいろいろ不備(空白が入ったときや1-のようなのも処理するのか?)があるが
「2,5,8-12,20」を解釈するだけなら説明入れても1レスですむ。
Dim s As String: s = "2,5,8-12,20"
Dim i As Variant, j As Variant, k As Long
For Each i In Split(s, ",")
j = Split(i, "-")
For k = j(LBound(j)) To j(UBound(j))
Debug.Print k
Next k
Next i
正規表現を使えばもっと減るかな? Perlなどのように言語の構文として正規表現がサポートされている
言語ならもっと少なくなるが、ライブラリとして正規表現をつかうJavaやC++なら同じぐらい。