mem_set

mem_set setzt die Bytes in einem String auf Werte eines bestimmten Datentyps.

bool = mem_set(ssString, pos, values, ssType)

Returnwert

bool ist TRUE (1), wenn die Funktion erfolgreich war und sonst FALSE (1).

Parameter

ssString

ssString ist ein String mit ausreichend Platz um len(values) des Typs ssType aufzunehmen.

pos

pos ist die Position im String (>= 1).

values

values sind die Werte, die in den String geschrieben werden sollen.

ssType

ssType ist der Datentyp. Folgende Werte sind möglich:

Typ Description
„int8“ or „char“ Ein Byte mit Vorzeichen (-127 bis 127). values kann ein Zahlenvektor oder ein String sein.
„wchar_t“ Ein UTF-16 Unicode-Zeichen (2 Bytes). values kann ein Zahlenvektor oder ein String sein.
„uint8“ or „uchar“ Ein Byte ohne Vorzeichen (0 bis 255).
„int16“ 16-bit Integer (2 Bytes).
„uint16“ 16-bit vorzeichenloser (unsigned) Integer (2 Bytes).
„int32“ 32-bit Integer (4 Bytes).
„uint32“ 32-bit unsigned Integer (4 Bytes).
„int64“ 64-bit Integer (8 Bytes). Da UniScript diesen Wert in einer double-Zahl speichert, sind im Ergebnis nur ca. 52 Bits gültig.
„uint64“ 64-bit unsigned Integer (8 Bytes). Da UniScript diesen Wert in einer double-Zahl speichert, sind im Ergebnis nur ca. 52 Bits gültig.
„float“ 32-bit Real-Zahl (4 Bytes).
„double“ 64-bit Real-Zahl (8 Bytes).

Beispiel

// 40 Bytes langen String erzeugen.
v = mem_alloc(40);
// 10 Integer-Zahlen (1 .. 10) rein schreiben.
mem_set(v, 1, 1:10, "int32");
// Die zehn Zahlen wieder lesen
res = mem_get(v, 1, "int32", 10);

Unicode-String einfügen:

// 10 Bytes langen String erzeugen mit Platz für 5 Unicode-UTF-16 Zeichen.
s = mem_alloc(10);
mem_set(s, 1, "hello", "wchar_t");
print s; // Gibt "hello" aus

History

Version Beschreibung
R2012.4 „int8“ und „uint8“.
5.0.0 Neuer Typ „wchar_t“.
4.2.0 Neu.

id-627506