| a | b | |
|---|
| 0 | + | Option Explicit |
|---|
| 0 | + | |
|---|
| 0 | + | Class cls_List |
|---|
| 0 | + | Public Head |
|---|
| 0 | + | Public Tail |
|---|
| 0 | + | End Class |
|---|
| 0 | + | |
|---|
| 0 | + | Function fun_cons(head, tail) |
|---|
| 0 | + | Dim list |
|---|
| 0 | + | Set list = New cls_List |
|---|
| 0 | + | list.Head = head |
|---|
| 0 | + | Set list.Tail = tail |
|---|
| 0 | + | Set fun_cons = list |
|---|
| 0 | + | End Function |
|---|
| 0 | + | |
|---|
| 0 | + | Function fun_rev(list, rev) |
|---|
| 0 | + | If list Is Nothing Then |
|---|
| 0 | + | Set fun_rev = rev |
|---|
| 0 | + | Else |
|---|
| 0 | + | Set fun_rev = fun_rev(list.Tail, fun_cons(list.Head, rev)) |
|---|
| 0 | + | End If |
|---|
| 0 | + | End Function |
|---|
| 0 | + | |
|---|
| 0 | + | Function fun_join(list, sep) |
|---|
| 0 | + | If list Is Nothing Then |
|---|
| 0 | + | fun_join = "" |
|---|
| 0 | + | Else |
|---|
| 0 | + | If list.Tail Is Nothing Then |
|---|
| 0 | + | fun_join = list.Head |
|---|
| 0 | + | Else |
|---|
| 0 | + | fun_join = list.Head & sep & fun_join(list.Tail, sep) |
|---|
| 0 | + | End If |
|---|
| 0 | + | End If |
|---|
| 0 | + | End Function |
|---|
| 0 | + | |
|---|
| 0 | + | Function fun_div(s, n) |
|---|
| 0 | + | If Len(s) = "" Then |
|---|
| 0 | + | Set fun_div = Nothing |
|---|
| 0 | + | Else |
|---|
| 0 | + | Dim list |
|---|
| 0 | + | Set list = Nothing |
|---|
| 0 | + | |
|---|
| 0 | + | Dim i |
|---|
| 0 | + | |
|---|
| 0 | + | For i = 1 + n To Len(s) Step n |
|---|
| 0 | + | Set list = fun_cons(Mid(s, i - n, n), list) |
|---|
| 0 | + | Next |
|---|
| 0 | + | |
|---|
| 0 | + | Set list = fun_cons(Mid(s, i - n, Len(s) - (i - n) + 1), list) |
|---|
| 0 | + | |
|---|
| 0 | + | Set fun_div = fun_rev(list, Nothing) |
|---|
| 0 | + | End If |
|---|
| 0 | + | End Function |
|---|
| 0 | + | |
|---|
| 0 | + | Function fun_format(num, n, sep) |
|---|
| 0 | + | Dim r |
|---|
| 0 | + | r = StrReverse(num) |
|---|
| 0 | + | Set r = fun_div(r, n) |
|---|
| 0 | + | r = fun_join(r, sep) |
|---|
| 0 | + | r = StrReverse(r) |
|---|
| 0 | + | fun_format = r |
|---|
| 0 | + | End Function |
|---|
| 0 | + | |
|---|
| 0 | + | Sub fun_main() |
|---|
| 0 | + | Call WScript.Echo(fun_format("", 3, ",")) |
|---|
| 0 | + | Call WScript.Echo(fun_format("0", 3, ",")) |
|---|
| 0 | + | Call WScript.Echo(fun_format("90", 3, ",")) |
|---|
| 0 | + | Call WScript.Echo(fun_format("890", 3, ",")) |
|---|
| 0 | + | Call WScript.Echo(fun_format("7890", 3, ",")) |
|---|
| 0 | + | Call WScript.Echo(fun_format("67890", 3, ",")) |
|---|
| 0 | + | Call WScript.Echo(fun_format("567890", 3, ",")) |
|---|
| 0 | + | Call WScript.Echo(fun_format("4567890", 3, ",")) |
|---|
| 0 | + | Call WScript.Echo(fun_format("34567890", 3, ",")) |
|---|
| 0 | + | Call WScript.Echo(fun_format("234567890", 3, ",")) |
|---|
| 0 | + | Call WScript.Echo(fun_format("1234567890", 3, ",")) |
|---|
| 0 | + | End Sub |
|---|
| 0 | + | |
|---|
| 0 | + | fun_main |
|---|
| ... | |
|---|