title image


Smiley Re: Einen String packen (vielleicht mit ZIP?)
Such mal nach zLib da gibts auch VB Beispiele dazu, aber benutz lieber die *.dll selber und nicht das Control weil das langsam ist.





Hier haste auch noch ein bischen Code den ich irgendwann mal geschrieben habe. Kommt aus ner Klasse.

Weiter unten noch *.vbs Code den ich zum testen benutzt habe.



czipstring.cls



Option Explicit

Private m_lOrgStrLen As Long ' Original String länge

Private m_cOrgStr As String

Private m_lComStrLen As Long ' Komprimierte String länge

Private m_cComStr As String



Public Property Get GetOrgLen() As Long

GetOrgLen = m_lOrgStrLen

End Property



Public Property Get CZipString() As String

CZipString = m_cOrgStr

End Property



Public Property Let CZipString(ByVal c As String)

m_cOrgStr = c

End Property



Public Sub CompressString()

Dim b() As Byte

Dim TmpBuff() As Byte

Dim lSize As Long

Dim ret As Long



If Len(m_cOrgStr) 0 Then

m_lOrgStrLen = Len(m_cOrgStr)

b = StrConv(m_cOrgStr, vbFromUnicode)



lSize = 12 + m_lOrgStrLen + &H10000

lSize = lSize And &HFFFF0000

ReDim TmpBuff(lSize)



ret = compress(TmpBuff(0), lSize, b(0), UBound(b) + 1, 9)

Select Case ret

Case 0

m_lComStrLen = lSize

ReDim b(lSize - 1)

CopyMemory b(0), TmpBuff(0), lSize

m_cComStr = StrConv(b, vbUnicode)

m_cOrgStr = vbNullString



End Select

End If



End Sub



Public Sub UnCompressString()

Dim TmpBuff() As Byte

Dim b() As Byte

Dim lSize As Long

Dim ret As Long



If Len(m_cComStr) 0 Then

b = StrConv(m_cComStr, vbFromUnicode)

lSize = 12 + m_lOrgStrLen + &H10000

lSize = lSize And &HFFFF0000

ReDim TmpBuff(lSize)



ret = uncompress(TmpBuff(0), lSize, b(0), UBound(b) + 1)

Select Case ret

Case 0

ReDim b(0 To m_lOrgStrLen)

CopyMemory b(0), TmpBuff(0), m_lOrgStrLen

m_cOrgStr = StrConv(b, vbUnicode)

m_cComStr = ""

End Select

End If

End Sub







test.vbs



Option Explicit



Dim oZipString

Set oZipString = CreateObject("Utils.CZipString")



oZipString.CZipString = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" & vbCrLf & "bbbb"

oZipString.CompressString

oZipString.UnCompressString

MsgBox oZipString.CZipString



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: