Revision 323136613639 () - Diff

Link to this snippet: https://friendpaste.com/2W8Tx5hUl2L0RzkL5YpxlS
Embed:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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