mem_set setzt die Bytes in einem String auf Werte eines bestimmten Datentyps.
Returnwert
bool ist TRUE (1), wenn die Funktion erfolgreich war und sonst FALSE (1).
Parameter
ssString ist ein String mit ausreichend Platz um len(values) des Typs ssType aufzunehmen.
pos ist die Position im String (>= 1).
values sind die Werte, die in den String geschrieben werden sollen.
ssType ist der Datentyp. Folgende Werte sind möglich:
| Typ-Name | Beschreibung |
|---|---|
| “char” | Ein Byte mit Vorzeichen (-127 bis 127). |
| “wchar_t” | Ein UTF-16 Unicode-Zeichen (2 Bytes). |
| “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 Ergbenis nur ca. 52 Bits gültig. |
| “uint64” | 64-bit unsigned Integer (8 Bytes). Da UniScript diesen Wert in einer double-Zahl speichert, sind im Ergbenis 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 |
|---|---|
| 5.0.0 | Neuer Typ “wchar_t”. |
| 4.2.0 | Neu. |
Siehe auch
id-627506