Volltextsuche Druckansicht Zurück Weiter
Inhalt Bedienung Befehle Beispiele  
Objektbefehle
Log-Liste
Einfache Befehle
Schnittstellen
ASCII-Schnittstelle
COM-Schnittstelle
ODBC-Schnittstelle
Oracle-Schnittstelle
GUI-Befehle

2. 4. 1   ASCII

SYNTAX - Import

Die Befehle import und parse erlauben den Import von ASCII-Daten. Der Befehl import liest Daten aus einer Datei (ASCII-Tabelle), untersucht die Zeilen nach Trennzeichen und gibt eine Liste mit den Listenelementen der Zeilen zurück, parse untersucht einzelne Zeichenketten nach Trennzeichen und gibt eine Liste mit den Elementen der Zeile zurück. Sie haben die allgemeine Form:

    import fileName ?options?
    parse string ?options?

options bestimmen das exakte Verhalten des Befehls. Die folgenden Optionen sind definiert:

-separators
Einzelne Zeichen können hintereinander angegeben werden, die als Trennzeichen interpretiert werden. Diese Option kann nicht mit der Option -fixed verwendet werden. Standard ist \t (Tab).
 
-fixed
Einzelne Positionen können hintereinander angegeben werden, an denen die Zeilen in Zellen getrennt werden. Diese Option kann nicht mit der Option -separators verwendet werden. Standard ist Trennung nach Trennzeichen \t (Tab) (Option -separators).
 
-ignoreRepeat
Trennzeichenwiederholung ignorieren: wenn 0 (false) als Wert für die Option angegeben wird, werden wiederholte Trennzeichen als Trennung von Zellen aufgefasst, wenn 1 (true) angegeben wird, werden wiederholte Trennzeichen als einfaches Trennzeichen aufgefasst. Standard ist false.
 
-string
Zeichenkettenbeginn und -ende (paarweise, 2 Zeichen): Zeichenketten zwischen Zeichenkettenbeginn und Zeichenkettenende werden nicht nach Trennzeichen untersucht und unverändert übernommen. Zeichenkettenende und Zeichenkettenanfang können gleich sein. Diese Option wird bei Angabe der Option -fixed unterdrückt. Standard ist \" \".
 
-trim
Leerzeichen um den Zelleninhalt werden ignoriert wenn 1 (true) als Wert für die Option angegeben wird. Beispiel: aus "   1 2   " wird "1 2". Standard ist true
 
-trimLeft
Leerzeichen am Zellenanfang werden ignoriert wenn 1 (true) als Wert für die Option angegeben wird. Beispiel: aus "   1 2   " wird "1 2   ". Standard ist true
 
-trimRight
Leerzeichen am Zellenende werden ignoriert wenn 1 (true) als Wert für die Option angegeben wird. Beispiel: aus "   1 2   " wird "   1 2". Standard ist true
 
-trunc
Leere Zellen am Zeilenanfang und -ende werden unterdrückt wenn 1 (true) als Wert für die Option angegeben wird. Standard ist false
 
-truncStart
Leere Zellen am Zeilenanfang werden unterdrückt wenn 1 (true) als Wert für die Option angegeben wird. Standard ist false
 
-truncEnd
Leere Zellen am Zeilenende werden unterdrückt wenn 1 (true) als Wert für die Option angegeben wird. Standard ist false
 
-from
Das Einlesen der Datei wird ab der angegebenen Zeile (0-basierte Zählung) begonnen. Diese Option ist nur für den Befehl import verfügbar. Standard ist 0.
 
-to
Das Einlesen der Datei wird an der angegebenen Zeile (0-basierte Zählung) beendet. Diese Option ist nur für den Befehl import verfügbar, wobei end für das Dateiende angegeben werden kann. Standard ist end.


SYNTAX - Export

Für das Schreiben von ASCII-Dateien stehen die Tcl-Befehle open, puts und close zur Verfügung. 

    open fileName option
    puts fileCmd string
    close fileCmd

open fileName option

Erstellt eine Datei oder öffnet diese, wenn existent. Der Rückgabewert des Befehls ist das Objektkommando fileCmd, das zur weiteren Adressierung der Datei benötigt wird. Optionen:
w -
Datei anlegen. Existiert sie, wird der Inhalt gelöscht.
a -
Datei öffnen zum Anhängen eines Inhalts. Die Datei muss existieren.

puts fileCmd string

Hängt in der Datei mit dem Objektkommando fileCmd eine neue Ascii-Zeile an, deren Inhalt dem String string entspricht. Innerhalb des Strings sind Formatierungsanweisungen  zulässig (z.B.: \t - Tabulator; \n - Zeilenumbruch)

close fileCmd

Schließt die Datei mit dem Objektkommando fileCmd.

BEISPIELE


1. Erstellen einer Ascii-Datei


% set ergebnis "Job A: 19.10.2009 12:43 auf Maschine 5"
% set filecmd [open test.txt w]
% puts $filecmd "
Titel 1;Titel 2; Titel 3;"
% puts $filecmd "
a \t\t\t b \t\t #c"
% puts $filecmd ";;;\$23 \n ;24    ;     25"
% puts $filecmd $ergebnis
% close $filecmd

Die Datei test.txt enthält dann folgende Daten:

Titel 1;Titel 2; Titel 3;
a              b          #c
;;;$23
 ;24    ;     25
Job A: 19.10.2009 12:43 auf Maschine 5

2. Lesen einer Ascii-Datei

% import ./test.txt -separators \; -trim false
{{Titel 1} {Titel 2} { Titel 3}} {{a              b          #c}} {{} {} {} {$23 }} {{ } {24    } {     25}} {{Job A: 19.10.2009 12:43 auf Maschine 5}}


% import ./test.txt -separators \; -from 1 -trim true
{{a              b          #c}} {{} {} {} {$23}} {{} 24 25} {{Job A: 19.10.2009 12:43 auf Maschine 5}}

% import ./test.txt -separators \; -from 2 -to 2 -trim true -truncStart true
{{$23}}

% import ./test.txt -separators \t
{{Titel 1;Titel 2; Titel 3;}} {a {} {} b {} #c} {{;;;$23}} {{;24    ;     25}} {{Job A: 19.10.2009 12:43 auf Maschine 5}}

3. Parse

% parse {Zelle 1 + Zelle 2} -separators +
{Zelle 1 } { Zelle 2}

% parse {Zelle 1 + Zelle 2} -separators + " "
Zelle 1 {} {} Zelle 2

% parse {Zelle 1 + Zelle 2} -separators + " " -ignoreRepeat true
Zelle 1 Zelle 2

% parse {Zelle 1 + Zelle 2} -separators + -trim true
{Zelle 1} {Zelle 2}

% parse {Zelle 1 + Zelle 2} -fixed 7 10 -trim true
{Zelle 1} + {Zelle 2}

% parse {[Zelle 1] + [Zelle 2]} -separators + " " -ignoreRepeat true -string \[ \]
{Zelle 1} {Zelle 2}


 

simcron MODELLER 3.4
Copyright © 2025 simcron
27.02.2025