BriefLZDePack

Syntax:

Ergebnis = BriefLZDePack(Quelle, Ziel, Laenge, Callback)

Parameters:

Quelle

=

Adresse des Speicherbereichs, der enpackt werden soll

Ziel

=

Adresse des Ziel-Speicherbereichs, der den dekomprimierten Quellbereich aufnehmen wird

Dieser Speicherbereich muss zuvor reserviert werden.

=

Laenge

=

Länge des Zielspeicherbereichs

Callback

=

Zeiger auf eine Callback-Procedure ("NULL" um auf ein Callback zu verzichten)


Return Values:

Ergebnis

=

die neue Größe des komprimierten Speicherbereichs in Byte


Description:

Entpackt einen Speicherbereich


Example:



Procedure TestMe(Parameter)
 Debug Parameter
 ;Beep_(Parameter,50)
EndProcedure 

Filename.s="C:\bibeltext.txt" ; a 4,3 mb textfile
Filename.s="C:\Bitmap.bmp"; a 2,3mb screenshot
;Filename.s="C:\pbor\Datenbank Ohne Mod.pbor"
Filename2.s="C:\test.pck"
Filename3.s="C:\test2.bmp"




Procedure TestMe(Parameter)
 Debug Parameter
 ;Beep_(Parameter,50)
EndProcedure 

Filename.s="C:\bibeltext.txt" ; eine 4,3 MByte große Textdatei
;Filename.s="C:\Bitmap.bmp"; ein 2,3 MByte großer Screenshot
Filename2.s="C:\test.pck"
Filename3.s="C:\test2.bmp"

If ReadFile(1,Filename.s)
 l=Lof()
 Source=AllocateMemory(l)
 ReadData(Source,L)
 CloseFile(1)

 ;Debug PeekS(Source,40)
 Debug "len of File="+Str(l)
 Dest=AllocateMemory(L) ;genausoviel Zielspeicher reservieren
 t1=GetTickCount_()
 Result=BriefLZPack(Source,Dest,L,@TestMe())
 t2=GetTickCount_()
 Debug "time for packing "+Str(L) +" bytes to "+Str(result)+" bytes =" + Str(t2-t1)+" msec.s"
 ;Debug PeekS(DEST,40)
 ;In einer Datei speichern
 If CreateFile(0,Filename2.s)
  WriteData(Dest,result)
  CloseFile(0)
 EndIf
 
 FreeMemory(Dest)
 If ReadFile(1,Filename2.s)
  l2=Lof()
  Dest=AllocateMemory(l2)
  ReadData(Dest,L2)
  CloseFile(1)
 EndIf
 
 ;Speicher für die Entpack-Funktionen reservieren
 DeSource=AllocateMemory(l+4)

 t1=GetTickCount_()
 result= BriefLZDePack(Dest, DeSource,L,@TestMe())
 t2=GetTickCount_()
 Debug "time for Depacking to "+Str(result)+" bytes =" + Str(t2-t1)+" msec.s"
 Debug result
 If CreateFile(0,Filename3.s)
  WriteData(Desource,result)
  CloseFile(0)
 EndIf
 ;Debug PeekS(DeSource,40)
 ;Speicher freigeben
 FreeMemory(Desource)
 FreeMemory(Source)
 FreeMemory(Dest)
 
EndIf

Remarks:

Die Funktion wurde mit Windows 95, 98, NT, 2000 und XP getestet.



Supported OS:   Windows