Platforms to show: All Mac Windows Linux Cross-Platform
/Compression/GZip/GZip string test
Required plugins for this example: MBS Util Plugin, MBS Compression Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Compression/GZip/GZip string test
This example is the version from Sun, 17th Mar 2012.
Project "GZip string test.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
End Class
Class Window1 Inherits Window
EventHandler Sub Open()
dim s as string = "Hello World"
// compress
dim c as string = GZIPStringWriteMBS(s)
// decompress
dim t as string = GZipStringReadMBS(c)
MsgBox s
// second test
dim test as string = RandomBytesStringMBS(1000, true)
test = test + test // 2000
test = test + test // 4000
test = test + test // 8000 Bytes now
// compress
dim ctest as string = GZIPStringWriteMBS(test)
// decompress
dim ttest as string = GZipStringReadMBS(ctest)
if lenb(ttest)=lenb(test) then
if StrComp(ttest, test, 0)=0 then
MsgBox "OK"
else
MsgBox "Error: Content changed."
end if
else
MsgBox "Error: Length wrong."
end if
End EventHandler
Function GZIPStringWriteMBS(data as string) As string
dim g as new GZipFileMBS
if g.CreateForString then
g.Write data
Return g.CloseForString
end if
End Function
Function GZipStringReadMBS(compressedData as string) As string
dim g as new GZipFileMBS
const BlockSize=1000000
if g.OpenString(compressedData) then
dim parts(-1) as string
while not g.eof
dim s as string=g.Read(BlockSize)
parts.Append s
wend
Return Join(parts,"")
end if
End Function
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
End Project
See also:
The items on this page are in the following plugins: MBS Compression Plugin.