Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
COMPRESS BLOB
|
COMPRESS BLOB ( BLOB {; Komprimierung} ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
BLOB | BLOB |
![]() |
Zu komprimierendes BLOB | |||||
Komprimierung | Lange Ganzzahl |
![]() |
Wenn angegeben: 1=komprimiert so kompakt wie möglich, 2=komprimiert so schnell wie möglich | |||||
Der Befehl COMPRESS BLOB komprimiert BLOB mit dem internen Komprimierungsalgorithmus von 4D. Dieser Befehl komprimiert nur BLOBs, die größer als 255 Bytes sind.
Mit dem optionalen Parameter Komprimierung legen Sie fest, wie das BLOB komprimiert wird. 4D bietet dafür folgende vordefinierten Konstanten:
Konstante | Typ | Wert | Kommentar |
Compact compression mode | Lange Ganzzahl | 1 | So kompakt wie möglich komprimieren (Standardmodus). Verlangsamt die Komprimierungsgeschwindigkeit und die Operationen zur Entkomprimierung. |
Fast compression mode | Lange Ganzzahl | 2 | So schnell wie möglich komprimieren (wird auch schnellstmöglich entkomprimiert), verringert die Komprimierungsrate, d.h. das komprimierte BLOB wird größer. |
GZIP best compression mode | Lange Ganzzahl | -1 | Kompakteste GZIP Komprimierung |
GZIP fast compression mode | Lange Ganzzahl | -2 | Schnellste GZIP Komprimierung |
Übergeben Sie einen anderen Wert oder lassen Sie den Parameter Komprimierung weg, wird der Komprimierungsmodus 1 verwendet (kompakteste interne Komprimierung).
Nach dem Aufruf hat die OK Variable den Wert 1, wenn das BLOB erfolgreich komprimiert wurde. Andernfalls hat die OK Variable den Wert 0. Dann gibt es zwei Möglichkeiten:
Mit dem Befehl EXPAND BLOB können Sie ein komprimiertes BLOB entkomprimieren.
Mit dem Befehl BLOB PROPERTIES können Sie feststellen, ob ein BLOB komprimiert ist.
Warnung: Ein komprimiertes BLOB ist weiterhin ein BLOB, Sie können also weiterhin dessen Inhalt verändern. Beachten Sie jedoch, dass der Befehl EXPAND BLOB das BLOB dann nicht korrekt entkomprimieren kann.
Dieses Beispiel prüft, ob das BLOB vxMyBlob komprimiert ist, und komprimiert es gegebenenfalls:
BLOB PROPERTIES(vxMyBlob;$vlCompressed;$vlExpandedSize;$vlCurrentSize)
If($vlCompressed=Is not compressed)
COMPRESS BLOB(vxMyBlob)
End if
Wenden Sie den Befehl COMPRESS BLOB auf ein bereits komprimiertes BLOB an, erkennt er das und führt nichts aus.
Dieses Beispiel wählt ein Dokument aus und komprimiert es:
$vhDocRef :=Open document("")
If(OK=1)
CLOSE DOCUMENT($vhDocRef)
DOCUMENT TO BLOB(Document;vxBlob)
If(OK=1)
COMPRESS BLOB(vxBlob)
If(OK=1)
BLOB TO DOCUMENT(Document;vxBlob)
End if
End if
End if
HTTP Rohdaten senden, komprimiert mit GZIP:
COMPRESS BLOB($blob;GZIP Best compression mode)
C_TEXT($vEncoding)
$vEncoding:="Content-encoding: gzip"
WEB SET HTTP HEADER($vEncoding)
WEB SEND RAW DATA($blob ;*)
Wurde das BLOB erfolgreich komprimiert, hat die OK Variable den Wert 1; andernfalls den Wert 0.
Produkt: 4D
Thema: BLOB
Nummer:
534
Geändert: 4D v6.5.3
Geändert: 4D v13
Compression, blob compression
4D Programmiersprache ( 4D v20 R7)