# Skripting: Strings und Variablen

> Arbeiten mit Variablen und Zeichenketten in NiceProtect-Skripten. Datentypen, Zuweisungen und String-Operationen.

Canonical HTML: <https://www.niceprotect.com/help/de/strings_und_variablen.htm>

## Zeichenfolgen- und Variablenbefehle


Zahlen sind standardmäßig dezimal. Ein Wert mit dem Präfix **0x** (oder **$**) gilt als hexadezimal, alle anderen als dezimal. Arithmetikbefehle akzeptieren beide Formen als Eingabe und schreiben ein dezimales Ergebnis, sodass das Ergebnis einer Operation direkt in der nächsten verwendet werden kann.

**set** <wert>, <akkumulator> - Weist dem Akkumulator einen Wert zu.

**add** <v1>, <v2>, <akk> - Addiert v1 und v2 (dezimales Ergebnis).

**sub** <v1>, <v2>, <akk> - Subtrahiert v2 von v1.

**mul** <v1>, <v2>, <akk> - Multipliziert v1 mit v2.

**div** <v1>, <v2>, <akk> - Ganzzahlige Division von v1 durch v2.

**calc** <ausdruck>, <akk> [, hex] - Wertet einen arithmetischen Ausdruck mit + - * / und Klammern aus; Zahlen dürfen dezimal oder hexadezimal sein. Das Ergebnis ist dezimal oder eine HEX-Zeichenfolge ohne Auffüllung, wenn der dritte Parameter "hex" lautet.

**pack** <wert>, <byte|word|dword|qword>, <le|be>, <akk> - Kodiert eine Zahl als HEX-Bytefolge fester Breite in Little- oder Big-Endian-Reihenfolge, bereit für putcode.

**unpack** <hex_bytes>, <le|be>, <akk> - Dekodiert eine HEX-Bytefolge zurück in eine dezimale Zahl.

**concat** <s1>, <s2>, <akk> - Verbindet die Zeichenfolgen s1 und s2.

**chrtohex** <zeichen>, <akk> - Konvertiert ein Zeichen in seine HEX-Darstellung.

**hextochr** <hex>, <akk> - Konvertiert eine HEX-Zeichenfolge in ein Zeichen.

**substr** <str>, <start>, <len>, <akk> - Extrahiert eine Teilzeichenfolge (start beginnt bei 1).

**length** <str>, <akk> - Ruft die Länge der Zeichenfolge ab.

**createstring** <zeichen>, <anzahl>, <akk> - Erstellt eine Zeichenfolge aus sich wiederholenden Zeichen.

**rndbyte** <akk> - Speichert ein zufälliges Byte (00..FF) als zweistellige HEX-Zeichenfolge im Akkumulator.

**invert** <wert>, <akk> - Kodiert einen Wert als 4-Byte-HEX-Zeichenfolge in Little-Endian-Reihenfolge (z. B. wird 0x00401011 zu 11104000). Aus Kompatibilitätsgründen erhalten; pack <wert>, dword, le, <akk> ist die klarere Entsprechung.

**settoclipboard** <text> - Kopiert Text in die Zwischenablage des Systems.
