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