Kopiert eine Zeichenkette auf eine Speicheradresse unter Beachtung eines bestimmten Zeichensatzes.
StrPut(Zkette , Codierung := Keine) StrPut(Zkette, Ziel , Länge , Codierung := Keine)
Eine beliebige Zeichenkette. Wenn eine Zahl angegeben ist, wird sie automatisch in eine Zeichenkette umgewandelt.
Zkette wird standardmäßig in der nativen Codierung vermutet.
Die Speicheradresse, auf der die Zeichenkette geschrieben werden soll.
Hinweis: Bei einer Konvertierung zwischen Zeichensätzen kann die erforderliche Pufferspeichergröße von der Größe der Quellzeichenkette abweichen. In solchen Fällen können Sie StrPut mit zwei Parametern aufrufen, um die erforderliche Größe zu berechnen.
Die maximale Anzahl der zu schreibenden Zeichen, einschließlich des Null-Terminators, falls notwendig.
Wenn Länge 0 oder kleiner als die nach der Konvertierung voraussichtliche Länge (oder die Länge der Quellzeichenkette, wenn die Konvertierung nicht erforderlich ist) ist, wird keine Zeichen geschrieben.
Länge darf nicht weggelassen werden, es sei denn, man weiß, dass die Pufferspeichergröße ausreicht, z. B. wenn der Pufferspeicher basierend auf einem vorherigen Aufruf von StrPut, das die gleiche Quelle und Codierung hat, reserviert wurde.
Hinweis: Wenn Codierung angegeben ist, sollte Länge mit der Pufferspeichergröße übereinstimmen (in Zeichen), nicht mit der Länge von Zkette oder einer Teilzeichenkette, da sie bei der Konvertierung eventuell länger gemacht wird.
Hinweis: Länge und der Rückgabewert von StrPut wird in Zeichen gemessen, während Pufferspeichergrößen normalerweise in Bytes gemessen werden.
Die Zielcodierung; zum Beispiel: "UTF-8"
, "UTF-16"
oder "CP936"
. Bei numerischen Identifikatoren kann das Präfix "CP" nur weggelassen werden, wenn Länge angegeben ist. Geben Sie eine leere Zeichenkette oder "CP0"
an, um den Standard-ANSI-Zeichensatz des Systems zu nutzen.
Diese Funktion gibt die Anzahl der geschriebenen Zeichen zurück. Wenn kein Ziel angegeben wurde, wird die erforderliche Pufferspeichergröße in Zeichen zurückgegeben. Wenn Länge exakt mit der Länge der umgewandelten Zeichenkette übereinstimmt, ist die Zeichenkette nicht null-terminiert; andernfalls beinhaltet die zurückgegebene Größe den Null-Terminator.
Es wird eine leere Zeichenkette zurückgegeben, wenn ungültige Parameter erkannt werden oder die Konvertierung nicht durchgeführt werden kann. Wenn die endgültige Anzahl der Zeichen Länge überschreitet, ist der Rückgabewert 0.
Beachten Sie, dass der Zkette-Parameter immer davon ausgeht, die native Codierung der aktuell genutzten Version von AutoHotkey zu verwenden, wohingegen Codierung die Codierung der auf das angegebene Ziel geschriebenen Zeichenkette spezifiziert. Wenn keine Codierung angegeben ist, wird die Zeichenkette gemessen oder kopiert, ohne dass eine Umwandlung stattfindet.
Zeichenkettencodierung, StrGet(), Skript-Kompatibilität, FileEncoding, DllCall(), VarSetCapacity()
Es ist möglich, Länge oder Codierung direkt nach Ziel anzugeben, aber in diesem Fall darf Codierung nicht numerisch sein.
StrPut(Zkette, Adresse, "cp0") ; Zeichensatz 0, unbestimmte Pufferspeichergröße StrPut(Zkette, Adresse, n, 0) ; Maximal n Zeichen, Zeichensatz 0 StrPut(Zkette, Adresse, 0) ; Nicht unterstützt (maximal 0 Zeichen)
StrPut kann einmal aufgerufen werden, um die erforderliche Pufferspeichergröße für eine Zeichenkette in einer bestimmten Codierung zu berechnen, und danach nochmal, um die Zeichenkette zu codieren und sie in den Pufferspeicher zu schreiben. Um diesen Vorgang zu vereinfachen, können Sie die folgende Funktion in Ihre Bibliothek aufnehmen.
StrPutVar(Zkette, ByRef Var, Codierung) { ; Kapazität gewährleisten. VarSetCapacity(Var, StrPut(Zkette, Codierung) ; StrPut gibt die Zeichenanzahl zurück, aber VarSetCapacity benötigt Bytes. * ((Codierung = "utf-16" || Codierung = "cp1200") ? 2 : 1) ) ; Kopiert oder wandelt die Zeichenkette um. return StrPut(Zkette, &Var, Codierung) }