Menü

Client.LoadText/SaveText (iScript)

Zurück | 

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

options: variant [optional]

Charset-Angabe oder Optionen-String.

Wert Standardwert Beschreibung
Charset
string
Systemstandard
Wert  
UTF-8  
UTF-16 16-Bit Codierung in Intel-Byte-Order (Little Endian)
UTF-16BE 16-Bit Codierung in Motorola-Byte-Order (Big Endian)
ibm437 MS-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-16BEBei 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:

Hex-Darstellung

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