StrGet() [AHK_L 46+]

Kopiert eine Zeichenkette von einer Speicheradresse (optional mit Codepage-Umwandlung).

Zkette := StrGet(Quelle , Länge, Kodierung)
Zkette := StrGet(Quelle , Kodierung)

Parameter

Quelle

Die Speicheradresse der Zeichenkette.

Die Zeichenkette muss nicht nullterminiert sein, wenn Länge angegeben ist.

Länge

Wenn weggelassen (oder wenn der 2-Parameter-Modus verwendet wird), wird die aktuelle Länge der Zeichenkette verwendet, sofern die Zeichenkette nullterminiert ist. Andernfalls geben Sie die Länge der Zeichenkette an, in Zeichen.

Hinweis: Das Weglassen von Länge bei einer nicht-nullterminierten Zeichenkette kann zu einer Zugriffsverletzung führen, was eine Terminierung des Programms oder andere unerwünschte Nebeneffekte zur Folge hat. Die Angabe einer falschen Länge kann zu unerwartetem Verhalten führen.

Hinweis: Eingebettete Nullzeichen werden nicht unterstützt und bewirken in der Regel, dass die Zeichenkette gekürzt wird.

Kodierung

Wenn weggelassen, wird die Zeichenkette einfach kopiert, ohne dass eine Umwandlung stattfindet. Andernfalls geben Sie die Quellkodierung an, z.B. "UTF-8", "UTF-16" oder "CP936". Für numerische Identifikatoren kann das Präfix "CP" nur im 3-Parameter-Modus weggelassen werden. Geben Sie eine leere Zeichenkette oder "CP0" an, um die Standard-ANSI-Codepage des Systems zu verwenden.

Rückgabewert

Diese Funktion gibt die kopierte oder umgewandelte Zeichenkette zurück. Wenn die Quellkodierung korrekt angegeben wurde, verwendet der Rückgabewert immer die native Kodierung. Die Zeichenkette ist immer nullterminiert, aber der Nullterminator wird nicht zur Länge des Rückgabewertes hinzugezählt.

Fehlerbehandlung

Es wird eine leere Zeichenkette zurückgegeben, wenn ungültige Parameter erkannt werden oder die Umwandlung nicht durchgeführt werden kann.

Bemerkungen

Beachten Sie, dass der Rückgabewert immer in der nativen Kodierung der aktuellen EXE-Datei von AutoHotkey ist, während Kodierung angibt, wie die gelesene Zeichenkette aus der angegebenen Quelle interpretiert werden soll. Wenn keine Kodierung angegeben ist, wird die Zeichenkette einfach kopiert, ohne dass eine Umwandlung stattfindet.

Mit anderen Worten, StrGet wird verwendet, um Text aus einem Speicherbereich abzurufen oder um Text in ein Format umzuwandeln, das das Skript versteht.

Bei einer Codepage-Umwandlung kann die Länge des Rückgabewerts von der Länge der Quellzeichenkette abweichen.

Zeichenkettenkodierung, StrPut(), Skriptkompatibilität, FileEncoding, DllCall(), VarSetCapacity()

Beispiele

Länge oder Kodierung kann direkt nach Quelle angegeben werden, aber in diesem Fall muss Kodierung nicht-numerisch sein.

Zkette := StrGet(Adresse, "cp0")  ; Codepage 0, unbestimmte Länge
Zkette := StrGet(Adresse, n, 0)   ; Maximal n Zeichen, Codepage 0
Zkette := StrGet(Adresse, 0)      ; Maximal 0 Zeichen (immer leer)