mem_compress

mem_compress komprimiert einen String. Der String kann auch Null-Zeichen enthalten.

ssCompressed = mem_compress(ssString)

Returnwert

ssCompressed ist der komprimierte String. Die Funktion fügt dem komprimierten String einen 8-Byte langen Header zu. Der Header besteht aus den 4 Zeichen gzc\0 und einem 32-Bit Wert in little endian byte-order (Intel), der die unkomprimierte Länge des Strings enthält.

Parameter

ssString

ssString ist ein skalarer String.

Beispiel

filename = GetRootDirectory() + "/script/mn_grid.ic";
fp = fopen(filename, "r");
s = fread(fp, "char");
fclose(fp);
c = mem_compress(s);
print "Size uncompressed:", strlen(s);
print "Size compressed:", mem_len(c);

Ausgabe:

Size uncompressed:
91099.0000
Size compressed:
17992.0000

Kommentar

Diese Funktion verwendet die zlib-Library (http://www.gzip.org/zlib/). Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler.

UniPlot verwendet Unicode-Strings, die zwei Bytes pro Zeichen verwenden (UTF-16). Die Funktion mem_compress verwendet nur jeweils die unteren Bytes des Unicode-Strings.

Müssen alle Bytes des Unicode-Strings komprimiert werden, können die Funktionen mem_unpack und mem_pack vor dem Komprimieren bzw. nach dem Dekomprimieren verwendet werden:

* mc = mem_compress(mem_unpack("你们好"))
* print mem_pack(mem_uncompress(mc))
你们好

History

Version Beschreibung
5.0.0 UniPlot verwendet nun Unicode für Strings.
4.2.0 Neu

id-1359285