回复 11# CrLf
用 VBS 写了个跟你类似的编码程序,体积较大。
解码程序还在琢磨,话说用 JS 也太简洁了吧。- Function CompressionText(ByVal Text)
- Const MinLen = 4
- If Len(Text) <= MinLen Then
- CompressionText = Text
- Exit Function
- End If
- Dim arr(), i, str
- ReDim Preserve arr(1, 0)
- arr(0, 0) = Mid(Text, 1, 1)
- arr(1, 0) = 1
- For i = 2 To Len(Text)
- If Mid(Text, i - 1, 1) = Mid(Text, i, 1) Then
- arr(1, UBound(arr, 2)) = arr(1, UBound(arr, 2)) + 1
- Else
- ReDim Preserve arr(1, UBound(arr, 2) + 1)
- arr(0, UBound(arr, 2)) = Mid(Text, i, 1)
- arr(1, UBound(arr, 2)) = 1
- End If
- Next
- For i = 0 To UBound(arr, 2)
- If arr(1, i) >= MinLen Then
- str = str & arr(0, i) & "[" & arr(1, i) & "]"
- Else
- str = str & String(arr(1, i), arr(0, i))
- End If
- Next
- CompressionText = str
- End Function
复制代码
|