Client. Load Text
Zuletzt geändert: 11.06.2023 10:06

Client.LoadText, SaveText (iScript) #

Speichert einen String (Text) als Datei oder Registrywert bzw. liest einen Text aus einer Datei oder der Registry.

s = Client.LoadText (Location [, Options]) Client.SaveText(s, Location [, Options])

Parameter #

Location: string #

Dateiname oder Registry-Wert inkl. Pfad. Bei Registry-Werten muss der Preäfix “registry://” angegeben werden.

Beispiel für Dateiangabe: #

C:\temp\MeineTextdatei.txt

Beispiel für Registry: #

registry://ROOT/Modules/Grundwerte/Firmenstamm/disclaimer.txt

Beispiel für Webseiten über das eulanda://-Protokoll (nur LoadText): #

eulanda://./default.htm

options: variant [optional] #

Charset-Angabe oder Optionen-String.

Wert Standardwert Beschreibung
Charset string Systemstandard Wert UTF-8 UTF-1616-Bit Codierung in Intel-Byte-Order (Little Endian)UTF-16BE16-Bit Codierung in Motorola-Byte-Order (Big Endian)ibm437MS-DOS(andere)Andere in Windows installierte Zeichensätze sind ebenfalls möglich. Typischerweise finden sich die entsprechenden Namen in der Windows-Registry unter HKEY_CLASSES_ROOT\MIME\Database\Charset. Falls der angegebene Zeichensatz nicht unterstützt wird, wird eine Fehlermeldung ausgegeben.
WriteBOM Boolean “TRUE”,“FALSE” “TRUE” Um die verschiedenen Unicode-Speicherformate UTF-8, UTF-16 und UTF-16BE Bei untereinander und von normalen Ansi-Datein unterschieden zu können, sieht der Unicode-Standard es vor einen sogenannten Byte-Order-Mark (BOM) an den Anfang der Datei zu schreiben. Bei Weiterverarbeitung auf Unix-Systemen kann dies teilweise zu Problemen führen. Ebenso ist es bei UTF-8 kodierten Webseiten unüblich und führt im Browser zu Anzeigeproblemen. In diesen Fällen kann WriteBOM auf “0” gesetzt werden.
Overwrite Boolean “TRUE”,“FALSE” “TRUE” nur für SaveText: Wenn Overwrite auf False steht, wird eine Fehlermeldung ausgegeben, falls die Datei bereits existiert. Ansonsten wird sie überschrieben. Falls Append auf TRUE steht, wird Overwrite nicht ausgewertet
CheckExists Boolean “TRUE”,“FALSE” “FALSE” nur für LoadText: Wenn CheckExists auf True steht, wird eine Fehlermeldung ausgegeben. Wenn die Datei oder der Registry-Wert auf “FALSE” steht, wird ein Leerstring zurückgegeben.
Append Boolean “TRUE”,“FALSE” “FALSE” Falls die Datei bereits existiert, wird der Text an die Datei angehängt. Diese Möglichkeit besteht ausschließlich für Dateien. Beim Anfügen an eine vorhandene Datei ist darauf zu achten, die gleiche Charset-Einstellung, wie bei der ursprünglichen Datei zu verwenden. *Es erfolgt keine automatische Erkennung der vorhandenen Daten! *Beim Anfügen wird keine automatischer Zeilensprung angefügt. In VBScript ann dies beispielsweise über die Konstante vbCrLf erfolgen (siehe Beispiel B)

Beispiele #

A. Speichern eines Texts mit unterschiedlichen Zeichensätzen. #

Folgendes Skript erzeugt einen dreizeiligen Text der neben Umlauten auch chinesische Zeichen enthält. Dieser Text wird dann in verschiedenen Zeichensätzen auf dem Desktop gespeichert. Im Anschluss an das Skript befindet sich noch ein Bildschirm mit den Hexadezimal-Darstellungen der einzelnen Dateien. Hinweis: Der angezeigte Beispieltext muss direkt in den iScript-Editor kopiert werden. Beim Speichern im Editor gehen die Sonderzeichen verloren, da die Registry aktuell noch nicht Unicode-kompatibel ist.

VBScript
dim sl, s, desktop
set sl = client.NewStrings
sl.Add "Umlaute: öäüÖÄÜ und ß"
sl.Add "chinese: 系统正在测试中"
sl.Add "ENDE"

desktop = client.properties("folder.desktop") & "\"
s = sl.Text

Client.SaveText s, Desktop & "SaveText_Ansi.txt"
Client.SaveText s, Desktop & "SaveText (MS-DOS).txt", "ibm437"
Client.SaveText s, Desktop & "SaveText (UTF-8 mit BOM).txt", "utf-8"
Client.SaveText s, Desktop & "SaveText (UTF-16 mit BOM).txt", "utf-16"
Client.SaveText s, Desktop & "SaveText (UTF-16BE mit BOM).txt", "utf-16BE"

' wenn etwas anderes, als "charset" angegeben werden soll, müssen
' die Optionen mit Namen qualifiziert werden
Client.SaveText s, Desktop & "SaveText (UTF8 ohne BOM).txt", _
  "charset=utf-8;writebom=0"

Hex-Darstellung der verschiedenen Zeichensätze: #

Verschiedene Zeichensätze und Kodierungen beim Speichern im HEX-Vergleich

B. Anfügen an eine Datei #

dim i, filename

filename = client.properties("folder.desktop") & "\SaveText_Append.txt"
options = "charset=utf-8;append=1"
' Ziffern werden hintereinander in einer Zeile geschrieben
for i = 1 to 9
  Client.SaveText CStr(i), Filename, options
next
' Zeilenweises Anfügen über vbCrLf
for i = 1 to 9
  Client.SaveText " - Zeile " & CStr(i) & vbCrLf, Filename, options
next