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 |
---|
... | |
---|