Private Sub Command1_Click()
Dim i As Integer,count As Integer,length As Integer
Dim ch As String,key As String,s As String
S=Text1.Text
length=Len(s)
key= ①
i=2:count=1
Do While i<=length
ch=Mid(s,i,1)
If ch=key Then
count=count+1
Else
Text2.Text=Text2.Text+Str(count)+key
count=1
key=ch
End If
②
Loop
Text2.Text=Text2.Text+Str(count)+key ‘③
End Sub
① ②
00000000 00000011 10000000 11111111
这是一串由“0”和“1”组成的数据,“0”和“1”的重复次数很多。若我们用一个字节表示连续的数字及其个数,每个字节的第1位表示是“0”还是“1”,每个字节的后面7位表示“0”或“1”连续出现的次数,因为有7位,所以可以表示从0到127之间的任一整数;若“0”或“1”重复的次数超过127,则再用一个字节。这样,上述数据可压缩为如下4个字节表示(二进制代码):
00001110(14个“0”) 10000011(3个“1”) 00000111(7个“0”) 10001000(8个“1”)
按照上述方法,把下列2个字节的数据进行压缩。
原数据:11111111 11111111压缩后可表示为: