Transform

Führt verschiedene mathematische Funktionen, bitweise Operationen und Aufgaben wie ASCII/Unicode-Konvertierung aus.

Veraltet: Dieser Befehl ist nicht für neue Skripte empfohlen. Einzelheiten dazu, was Sie stattdessen verwenden können, finden Sie in den Abschnitten zu den Unterbefehlen weiter unten.

Transform, AusgabeVar, Unterbefehl, Wert1 , Wert2

Der AusgabeVar-Parameter ist Name der Variable, in der das Ergebnis gespeichert werden soll. Die Parameter Unterbefehl, Wert1 und Wert2 sind voneinander abhängig und können wie folgt genutzt werden.

Unterbefehle

Geben Sie für Unterbefehl Folgendes an:

Unicode

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen die Unicode-Version von AutoHotkey.

Ermittelt oder speichert Unicode-Text in die Zwischenablage (nur für ANSI-Versionen).

Transform, AusgabeVar, Unicode , Zkette

Hinweis: Die gesamte Zwischenablage kann mit ClipboardAll gespeichert und wiederhergestellt werden, damit dieser Unterbefehl ohne Verlust des originalen Inhalts der Zwischenablage ausgeführt werden kann.

Es gibt zwei verschiedene Modi, wie dieser Unterbefehl ausgeführt werden kann:

Transform, AusgabeVar, Unicode  ; Ermittelt den Unicode-Text aus der Zwischenablage als UTF-8-Zeichenkette.
Transform, Clipboard, Unicode, %MeineUTF_Zkette%  ; Speichert den Unicode-Text in die Zwischenablage.

Im zweiten oberen Beispiel besteht die Möglichkeit, anstelle von %MeineUTF_Zkette% eine direkt geschriebene UTF-8-Zeichenkette anzugeben.

Mit dem folgenden Hotkey kann eine UTF-8-Zeichenkette ermittelt werden, die zu einer angegebene Unicode-Zeichenkette gehört:

^!u::  ; Hotkey STRG+ALT+U.
MsgBox Kopieren Sie einen beliebigen Unicode-Text, kehren Sie danach zu diesem Fenster zurück und drücken Sie auf OK, um fortzufahren.
Transform, ClipUTF, Unicode
Clipboard := "Transform, Clipboard, Unicode, %ClipUTF%`r`n"
MsgBox Die Zwischenablage enthält nun die folgende Zeile, die Sie in Ihrem Skript einfügen können. Bei ihrer Ausführung wird der originale Unicode-Text, den man kopiert hat, in die Zwischenablage gespeichert:`n`n%Clipboard%
return

Hinweis: Der Befehl Send {U+nnnn} ist eine alternative Methode, um Unicode-Zeichen zu erzeugen.

Deref

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen die Ausdruckssyntax oder eine benutzerdefinierte Funktion wie Deref().

Erweitert Variablenreferenzen und Escapesequenzen, die sich in anderen Variablen befinden.

Transform, AusgabeVar, Deref, Zkette

Jede schlecht formatierte Variablenreferenz wird im erweiterten Ergebnis weggelassen. Das gleiche gilt auch, wenn sich AusgabeVar in sich selbst erweitert. Das heißt, dass jegliche Referenzen zu AusgabeVar innerhalb der Variablen von Zkette beim Erweitern weggelassen werden (allerdings kann Zkette selbst %AusgabeVar% sein). Wenn im folgenden Beispiel Var1 die Zeichenkette "Test" und Var2 die direkt geschriebene Zeichenkette "%Var1%" enthält, wird AusgabeVar auf die Zeichenkette "Test" gesetzt: Transform, AusgabeVar, Deref, %Var2%. Innerhalb einer Funktion werden alle Variablen in Zkette in lokale Variablen aufgelöst, es sei denn, es gibt keine Variablen dieser Art, dann werden sie in globale Variablen aufgelöst (oder leer gemacht, wenn keine vorhanden sind).

HTML

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen eine benutzerdefinierte Funktion wie EncodeHTML().

Konvertiert Zkette in ihr HTML-Äquivalent, indem Zeichen, deren ASCII-Werte über 127 liegen, in ihre HTML-Namen übersetzt werden (z. B. wird £ zu £).

Transform, AusgabeVar, HTML, Zkette , Flags

Zudem werden die vier Zeichen "&<> in &quot;&amp;&lt;&gt; und zu guter Letzt jedes LF-Zeichen (`n) in <br>`n übersetzt (also <br>, gefolgt von einem LF-Zeilenumbruchszeichen). Der Flags-Parameter wird ignoriert.

Bei der Unicode-Version kann zusätzlich der Flags-Parameter verwendet werden, der entweder eine 0 oder eine Kombination (Summe) der folgenden Werte sein kann. Lässt man diesen Parameter weg, wird standardmäßig 1 verwendet.

Nur Zeichen, die nicht zum ASCII-Zeichensatz gehören, sind davon betroffen. Wenn Flags eine 3 ist, werden nummerierte Ausdrücke nur verwendet, wenn kein benannter Ausdruck verfügbar ist. Die folgenden Zeichen werden immer umgewandelt: <>"& und `n (LF-Zeilenumbruchszeichen).

Asc

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Asc().

Ermittelt den Zeichencode (eine Zahl zwischen 1 und 255, oder bei Unicode zwischen 1 und 65535) des ersten Zeichens in Zkette.

Transform, AusgabeVar, Asc, Zkette

Wenn Zkette leer ist, wird AusgabeVar auch leer gemacht. Zum Beispiel: Transform, AusgabeVar, Asc, %VarMitZkette%. Für Unicode-Ergänzungszeichen können Sie stattdessen Ord() verwenden.

Chr

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Chr().

Ermittelt ein einzelnes Zeichen, das zum angegebenen Zeichencode in Zahl gehört.

Transform, AusgabeVar, Chr, Zahl

Wenn Zahl nicht zwischen 1 und 255 (oder bei Unicode zwischen 1 und 65535) liegt, wird AusgabeVar leer gemacht, um das Problem zu kennzeichnen. Zum Beispiel: Transform, AusgabeVar, Chr, 130. Im Gegensatz zu Chr() unterstützt dieser Unterbefehl keine Unicode-Ergänzungszeichen (Zeichencodes von 0x10000 bis 0x10FFFF).

Mod

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Mod().

Ermittelt den Rest von Dividend, geteilt durch Divisor.

Transform, AusgabeVar, Mod, Dividend, Divisor

Wenn Divisor eine 0 ist, wird AusgabeVar leer gemacht. Sowohl Dividend als auch Divisor können einen Dezimalpunkt enthalten. Falls Divisor negativ ist, wird er für die Berechnung als positiv angesehen. Im folgenden Beispiel ist das Ergebnis eine 2: Transform, AusgabeVar, Mod, 5, 3.

Exp

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Exp().

Ermittelt e (ungefähr 2.71828182845905), potenziert mit N.

Transform, AusgabeVar, Exp, N

Der Parameter N kann negativ sein und einen Dezimalpunkt enthalten.

Sqrt

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Sqrt().

Ermittelt die Quadratwurzel von Zahl.

Transform, AusgabeVar, Sqrt, Zahl

Wenn Zahl negativ ist, wird AusgabeVar leer gemacht.

Log

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Log().

Ermittelt den Logarithmus (Basis 10) von Zahl.

Transform, AusgabeVar, Log, Zahl

Wenn Zahl negativ ist, wird AusgabeVar leer gemacht.

Ln

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Ln().

Ermittelt den Logarithmus (Basis e) von Zahl.

Transform, AusgabeVar, Ln, Zahl

Wenn Zahl negativ ist, wird AusgabeVar leer gemacht.

Round

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Round().

Ermittelt Zahl, gerundet auf N Dezimalstellen.

Transform, AusgabeVar, Round, Zahl , N

Lässt man N weg, wird AusgabeVar auf Zahl gesetzt, gerundet auf den nächsten Integer. Ist N eine positive Zahl, wird Zahl auf N Dezimalstellen gerundet. Ist N negativ, wird Zahl auf N Stellen nach links gerundet. Zum Beispiel rundet -1 auf Einerstelle, -2 auf Zehnerstelle und -3 auf Hunderterstelle. Hinweis: Der Round-Unterbefehl entfernt beim Runden von Dezimalstellen keine Nullen am Ende. Zum Beispiel wird 12.333 zu 12.300000 beim Runden auf eine Dezimalstelle. Dieses Verhalten kann geändert werden, indem so etwas wie SetFormat, Float, 0.1 vor der Operation verwendet wird (tatsächlich könnte SetFormat den Round-Unterbefehl an erster Stelle überflüssig machen).

Ceil

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Ceil().

Ermittelt Zahl, auf den nächst höheren Integer gerundet.

Transform, AusgabeVar, Ceil, Zahl

Floor

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Floor().

Ermittelt Zahl, auf den nächst niedrigeren Integer gerundet.

Transform, AusgabeVar, Floor, Zahl

Abs

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Abs().

Ermittelt den absoluten Wert von Zahl.

Transform, AusgabeVar, Abs, Zahl

Entfernt das Minuszeichen (den Bindestrich) am Anfang von Zahl, sofern vorhanden.

Sin

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Sin().

Ermittelt den trigonometrischen Sinus von Zahl.

Transform, AusgabeVar, Sin, Zahl

Zahl muss als Bogenmaß angegeben werden.

Cos

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Cos().

Ermittelt den trigonometrischen Kosinus von Zahl.

Transform, AusgabeVar, Cos, Zahl

Zahl muss als Bogenmaß angegeben werden.

Tan

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen Tan().

Ermittelt den trigonometrischen Tangens von Zahl.

Transform, AusgabeVar, Tan, Zahl

Zahl muss als Bogenmaß angegeben werden.

ASin

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen ASin().

Ermittelt den Arkussinus (die Zahl, deren Sinus Zahl ist) als Bogenmaß.

Transform, AusgabeVar, ASin, Zahl

Wenn Zahl kleiner als -1 oder größer als 1 ist, wird AusgabeVar leer gemacht.

ACos

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen ACos().

Ermittelt den Arkuskosinus (die Zahl, deren Kosinus Zahl ist) als Bogenmaß.

Transform, AusgabeVar, ACos, Zahl

Wenn Zahl kleiner als -1 oder größer als 1 ist, wird AusgabeVar leer gemacht.

ATan

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen ATan().

Ermittelt den Arkustangens (die Zahl, deren Tangens Zahl ist) als Bogenmaß.

Transform, AusgabeVar, ATan, Zahl

Pow

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen den **-Operator.

Ermittelt Basis, potenziert mit Exponent.

Transform, AusgabeVar, Pow, Basis, Exponent

Sowohl Basis als auch Exponent können einen Dezimalpunkt enthalten. Wenn Exponent negativ ist, wird AusgabeVar in eine Floating-Point-Zahl umgewandelt, auch dann, wenn Basis und Exponent Integer sind. Eine negative Basis, kombiniert mit einem gebrochenen Exponent wie 1.5, wird nicht unterstützt und führt dazu, dass AusgabeVar leer gemacht wird.

BitNot

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen den ~-Operator.

Ermittelt die bit-invertierte Version von Zahl.

Transform, AusgabeVar, BitNot, Zahl

Floating-Point-Zahlen werden zu Integern gekürzt, bevor die Berechnung erfolgt. Wenn Zahl eine Zahl zwischen 0 und 4294967295 (0xffffffff) ist, wird sie als vorzeichenlosen 32-Bit-Wert behandelt. Ansonsten wird sie als vorzeichenfähigen 64-Bit-Wert behandelt. Im folgenden Beispiel ist das Ergebnis 0xfffff0f0 (4294963440): Transform, AusgabeVar, BitNot, 0xf0f.

BitAnd

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen den &-Operator.

Ermittelt das Ergebnis des bitweisen UNDs von Zahl1 und Zahl2.

Transform, AusgabeVar, BitAnd, Zahl1, Zahl2

Floating-Point-Zahlen werden zu Integern gekürzt, bevor die Berechnung erfolgt. Im folgenden Beispiel ist das Ergebnis 0xff00 (65280): Transform, AusgabeVar, BitAnd, 0xff0f, 0xfff0.

BitOr

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen den |-Operator.

Ermittelt das Ergebnis des bitweisen ODERs von Zahl1 und Zahl2.

Transform, AusgabeVar, BitOr, Zahl1, Zahl2

Floating-Point-Zahlen werden zu Integern gekürzt, bevor die Berechnung erfolgt. Im folgenden Beispiel ist das Ergebnis 0xf0f0 (61680): Transform, AusgabeVar, BitOr, 0xf000, 0x00f0.

BitXOr

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen den ^-Operator.

Ermittelt das Ergebnis des bitweisen Exklusiv-ODERs von Zahl1 und Zahl2.

Transform, AusgabeVar, BitXOr, Zahl1, Zahl2

Floating-Point-Zahlen werden zu Integern gekürzt, bevor die Berechnung erfolgt. Im folgenden Beispiel ist das Ergebnis 0xff00 (65280): Transform, AusgabeVar, BitXOr, 0xf00f, 0x0f0f.

BitShiftLeft

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen den <<-Operator.

Ermittelt das Ergebnis durch Verschieben von Zahl um N Bit-Stellen nach links.

Transform, AusgabeVar, BitShiftLeft, Zahl, N

Entspricht dem Multiplizieren von Zahl mit "2 potenziert mit N". Floating-Point-Zahlen werden zu Integern gekürzt, bevor die Berechnung erfolgt. Im folgenden Beispiel ist das Ergebnis eine 8: Transform, AusgabeVar, BitShiftLeft, 1, 3.

BitShiftRight

Veraltet: Nicht für neue Skripte empfohlen. Verwenden Sie stattdessen den >>-Operator.

Ermittelt das Ergebnis durch Verschieben von Zahl um N Bit-Stellen nach rechts.

Transform, AusgabeVar, BitShiftRight, Zahl, N

Entspricht dem Dividieren von Zahl mit "2 potenziert mit N", bei dem der Rest gekürzt wird. Floating-Point-Zahlen werden zu Integern gekürzt, bevor die Berechnung erfolgt. Im folgenden Beispiel ist das Ergebnis eine 2: Transform, AusgabeVar, BitShiftRight, 17, 3.

FromCodePage / ToCodePage

[AHK_L 54+]: Entfernt. Nutzen Sie stattdessen StrPut/StrGet.

Bemerkungen

Unterbefehle, die numerische Parameter akzeptieren, können auch Ausdrücke für solche Parameter verwenden.

Wenn einer der Parameter eine Floating-Point-Zahl ist, ermitteln folgende Unterbefehle eine Floating-Point-Zahl anstelle eines Integers: Mod, Pow, Round und Abs. Die Anzahl der abgerufenen Dezimalstellen wird über SetFormat bestimmt.

Um einen Bogenmaßwert in Grad umzurechnen, multiplizieren Sie ihn mit 180/pi (ungefähr 57.29578). Um einen Gradwert in Bogenmaß umzurechnen, multiplizieren Sie ihn mit pi/180 (ungefähr 0.01745329252).

Der Wert von pi (ungefähr 3.141592653589793) ist das 4-fache von Arkustangens 1.

Mathematische Funktionen, SetFormat, Ausdrücke, Operatoren, StringLower, if Var is Typ

Beispiele

Ermittelt den ASCII-Code des Buchstaben A und speichert ihn in AusgabeVar.

Transform, AusgabeVar, Asc, A