回复 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 FunctionCOPY |
|