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 |
Siehe auch
Überblick Strings, Datei-Kompression, mem_uncompress, CompressFile, DeCompressFile, mem_pack, mem_unpack
id-1359285