Imports System.IO
Imports System.IO.Compression
Imports System.Text
''' <summary>
''' 文字列の圧縮
''' </summary>
Protected Function CompressStr(ByVal sStr As String) As Byte()
Dim nStrBytes As Byte() = System.Text.Encoding.UTF8.GetBytes(sStr)
' 入出力用のストリームを生成します
Using oCompressMemory As New MemoryStream()
' ストリームに圧縮するデータを書き込みます
Using oCompressStream As New DeflateStream(oCompressMemory, CompressionMode.Compress, True)
oCompressStream.Write(nStrBytes, 0, nStrBytes.Length)
End Using
Return oCompressMemory.ToArray()
End Using
End Function
''' <summary>
''' 文字列の解凍
''' </summary>
Protected Function DecompressStr(ByVal nData As Byte()) As String
' 入出力用のストリームを生成します
Using oCompressedData As New MemoryStream(nData)
' ストリームから解凍したデータを読み込みます
Using oCompressStream As New DeflateStream(oCompressedData, CompressionMode.Decompress, True)
Dim nBuff(1024) As Byte
Dim oRetStr As New StringBuilder()
Do While oCompressStream.Read(nBuff, 0, nBuff.Length) > 0
oRetStr.Append(System.Text.Encoding.UTF8.GetString(nBuff).TrimEnd(vbNullChar))
Loop
' 解凍されたデータを文字列で取得します
Return oRetStr.ToString()
End Using
End Using
End Function