Read (Dateien einlesen)

Funktionsübersicht

«READ(<Kanal>:DIRECT <Datei>)»
«READ(<Kanal>:DIRECT DIR: <Datei>)»
«READ(<Kanal>:CLOSE)»
«READ(<Kanal>:)»
«READ(<Kanal>:-)»
«READ(<Kanal>:MEM)»
«READ(<Kanal>:MEM -<Trennzeichen>)»
«READ(<Kanal>:MEM <Anzahl Zeichen>,<Position>)»
«READ(<Kanal>:SIZE)»
«READ(<Kanal>:BLOCK <Anzahl Byte>)»
«READ(<Kanal>:DIRECT "<Ersatzzeichen>" <Datei>)»
Der optionale Parameter <Ersatzzeichen> besteht dabei aus zwei Zeichen welche die F-Script Befehlszeichen ersetzen.
char(174) « wird durch das erste Zeichen ersetzt.
char(175) » wird durch das zweite Zeichen ersetzt.
«READ(<Kanal>:DIRECTANSI <Datei>)»
Hinweis: DIRECTANSI kann überall dort verwendet werden, wo auch DIRECT verwendet werden kann.
«READ(<Kanal>:DIRECTANSI DIR <Datei>)»
Hinweis: DIRECTANSI kann überall dort verwendet werden, wo auch DIRECT verwendet werden kann.
«READ(<Kanal>:DIRECTUTF8 <Datei>)»
Hinweis: DIRECTUTF8 kann überall dort verwendet werden, wo auch DIRECT verwendet werden kann.
«READ(<Kanal>:DIRECTUTF8 DIR <Datei>)»
Hinweis: DIRECTUTF8 kann überall dort verwendet werden, wo auch DIRECT verwendet werden kann.

Allgemein

Die Operation READ stellt verschiedene Möglichkeiten zur Verfügung, den Inhalt einer Datei oder eines Verzeichnisses auszulesen. Es ist auch möglich ANSI Dateien direkt einzulesen und automatisch in das von OpaccERP verwendete ASCII Format zu konvertieren.
Hinweis
Hinweis
Für das Lesen von xml-Dateien steht Ihnen der Service Common.XmlQuery zur Verfügung.

Ein Lesevorgang verläuft dabei immer nach folgendem Muster:

1. Lesekanal auf Datei/Verzeichnis öffnen
2. nächste Zeile (od. Feld) in Puffer holen
3. Inhalt des Puffers lesen
[Schritt 2. und 3. beliebig oft wiederholen]
4. Lesekanal schliessen
Es können max. 4 Dateien gleichzeitig im Lese- oder Schreibzugriff sein (Kanal 1-4).
Der Inhalt einer Datei wird als ASCII (Codepage 850) interpretiert. Ein Zeilenende wird durch CR + LF markiert.
Wichtig
Wichtig
In Pfadangaben (READ und WRITE) sind nur ANSI-Zeichen erlaubt!

Anwendungsbeispiele

Arbeiten Sie wo immer möglich mit relativen Pfaden.

Beispiel 1

Datei ..\tx\test.txt zeilenweise lesen und ausgeben:
«z~READ(1:DIRECT ..\tx\test.txt)\I»«GOTO(# JUMP-01)»
«REPEAT»
«zREAD(1:)\I»«READ(1:MEM)»«LOOP»
«READ(1:CLOSE)»
# JUMP-01
/

Beispiel 2

Datei ..\tx\test.txt zeilenweise lesen und die ersten 5 semikolon-getrennten Felder ausgeben:
«z~READ(1:DIRECT ..\tx\test.txt)\I»«GOTO(# JUMP-01)»
«REPEAT(1)»
«z~READ(1:)\I»«GOTO(# JUMP-02)»
«NO(NULL)»
«REPEAT(2)»
«READ(1:MEM -;)»
«zNO<5\N»«LOOP(2)»
«LOOP(1)»
# JUMP-02
«READ(1:CLOSE)»
# JUMP-01
/

Beispiel 3

Datei ..\tx\test.csv zeilenweise lesen und es wird bis Spalte 10 die einzelnen Felder eingelesen. Die Felder sind durch semikolon getrennt:
# CSV-Datei einlesen
«nNO(1,NULL)»
«z~READ(1:DIRECT ..\tx\test.csv)\I»«GOTO(# END-READ)»
«nREPEAT(1)»
«z~READ(1:)\I»«GOTO(# JUMP-01)»
«nNO(2,NULL)»
«nNO(1)»
«REPEAT(2)»
«nNO(2)»
«READ(1:MEM -;)»
«zNO(2,0)<10\N»«LOOP(2)»
# JUMP-02
«LOOP(1)»
# JUMP-01
«READ(1:CLOSE)»
# END-READ
/

Beispiel 4

Datei ..\tx\test.txt mit komma-getrennten Feldern und Header-Zeile (CSV-Dateiformat) lesen:
«z~READ(1:DIRECT ..\tx\test.txt)\I»«GOTO(# JUMP-01)»
«REPEAT(1)»
«z~READ(1:)\I»«GOTO(# JUMP-02)»
«REPEAT(2)»
«z~READ(1:-)\I»«GOTO(# JUMP-03)»
«READ(1:MEM)»
«LOOP(2)»
# JUMP-03
«READ(1:MEM)»
«LOOP(1)»
# JUMP-02
«READ(1:CLOSE)»
# JUMP-01
/

Beispiel 5

In Dateiverzeichnis ..\tx nach Dateien *.txt suchen:
«z~READ(1:DIRECT DIR: ..\tx\*.txt)\I»«GOTO(# JUMP-01)»
«REPEAT»
«zREAD(1:)\I»«READ(1:MEM)»«LOOP»
«READ(1:CLOSE)»
# JUMP-01
/

Beispiel 6

Daten lesen und direkt in eine X-Variable speichern:
Siehe auch X-Variable
# Puffer auslesen:
«READ(<Kanal>:MEM>XVarName)»

# Puffer auslesen bis zum nächsten Trennzeichen:
«READ(<Kanal>:MEM>XVarName -<Trennzeichen>)»

# Anzahl Zeichen ab Position aus Puffer lesen:
«READ(<Kanal>:MEM>XVarName <Anzahl Zeichen>,<Position>)»
«nz ADR-ACTIVE(2020)\I»
«nm1KUNDEN-BEM(1)\N»
«REPEAT»
«nNO(1)»
«READ(«NO(1,0)»>TextBlock)»
«X(TextBlock)»
«nz NO(1,0)<«MEM(1)\N»\N»«LOOP»

Lesekanal auf Datei öffnen

Form

«READ(<Kanal>:DIRECT <Datei>)»

Funktion

Lesekanal auf Datei öffnen

Parameter

<Kanal>: 1|2|3|4
<Datei>: [<Laufwerk:>|<Netzwerk-Ressource>][<Pfad>]<Dateiname>|<Device>
Wenn immer möglich sollte mit relativen Pfaden gearbeitet werden. Mit der Pfadangabe ..\ stehen Sie, ausgehend vom F-Script, im Verzeichnis \insyde.
Verwenden Sie UNC Pfade nur dann, wenn auf Ressourcen zugegriffen werden muss, welche sich auf anderen Maschinen oder Verzeichnissen ausserhalb von \insyde befinden.
Verzichten Sie auf Pfadangaben mit Laufwerksbuchstaben!

Rückgabe

N
Konnte der Lesekanal geöffnet werden, wird 1 zurückgegeben.

Bemerkungen

Diese Operation kann nur auf Dateien, nicht aber auf Verzeichnisse angewendet werden.

Beispiele

Die folgenden Beispiele sollen in erster Linie die Syntax erläutern.

Beispiel 1

Lesekanal auf test.txt öffnen (relative Pfadangabe):
Die Datei test.txt befindet sich dabei im Verzeichnis \insyde\tx\
«READ(1:DIRECT ..\tx\test.txt)»
...
«READ(1:CLOSE)»
/

Beispiel 2

Lesekanal auf eingang.csv öffnen (relative Pfadangabe):
Die Datei befindet sich dabe im Verzeichnis \Transfer\Eingang\ welches auf derselben Verzeichnisebene wie \insyde liegt.
«READ(1:DIRECT ..\..\Transfer\Eingang\eingang.csv)»
...
«READ(1:CLOSE)»
/

Beispiel 3

Lesekanal auf lokale Datei c:\temp\test.asc öffnen (absolute Pfadangabe):
«READ(1:DIRECT c:\temp\test.txt)»
...
«READ(1:CLOSE)»
/

Beispiel 4

Lesekanal auf freigegebene Datei auf Client och-1085 öffnen (UNC-Pfad):
«READ(1:DIRECT \\och-1085\daten\test.txt)»
...
«READ(1:CLOSE)»
/

Lesekanal auf Verzeichnis öffnen

Form

«READ(<Kanal>:DIRECT DIR: <Datei>)»

Funktion

Lesekanal auf Verzeichnis öffnen

Parameter

<Kanal>: 1|2|3|4
<Datei>: [<Laufwerk:>|<Netzwerk-Ressource>][<Pfad>]<Dateiname>|<Device>
Dateinamen dürfen Wildcards (*,?) enthalten.
Wenn immer möglich sollte mit relativen Pfaden gearbeitet werden. Mit der Pfadangabe ..\ stehen Sie, ausgehend vom F-Script, im Verzeichnis \insyde.
Verwenden Sie UNC Pfade nur dann, wenn auf Ressourcen zugegriffen werden muss, welche sich auf anderen Maschinen oder Verzeichnissen ausserhalb von \insyde befinden.
Verzichten Sie auf Pfadangaben mit Laufwerksbuchstaben!

Rückgabe

N
Konnte der Lesekanal geöffnet werden, wird 1 zurückgegeben.
Konnte der Lesekanal nicht geöffnet werden, wird 0 zurückgegeben (= Verzeichnis(se) oder Datei(en) nicht vorhanden, keine Leseberechtigung, Netzwerk-Ressource nicht verfügbar o.ä.).

Bemerkungen

Diese Operation kann sowohl auf Dateien, wie auch auf Verzeichnisse angewendet werden.
Im Prinzip behandelt die Operation die Dateiangabe genau gleich wie ein DOS dir-Befehl.

Beispiele

Die folgenden Beispiele sollen in erster Linie die Syntax erläutern.

Beispiel 1

Lesekanal auf Verzeichnis ..\tx öffnen, mit der Absicht, alle Einträge in ..\tx zu lesen (relative Pfadangabe):
«READ(1:DIRECT DIR: ..\tx)»
...
«READ(1:CLOSE)»
/

Beispiel 2

Lesekanal auf Verzeichnis ..\tx öffnen mit der Absicht, alle *.asc-Einträge zu lesen:
«READ(1:DIRECT DIR: ..\tx\*.asc)»
...
«READ(1:CLOSE)»
/

Beispiel 3

Lesekanal auf ein lokales Verzeichnis c:\temp öffnen mit der Absicht, alle Einträge test1.asc, test2.asc etc. zu lesen:
«READ(1:DIRECT DIR: c:\temp\test?.asc)»
...
«READ(1:CLOSE)»
/

Beispiel 4

Lesekanal auf ein freigegebenes Verzeichnis auf Client och-1085 öffnen, mit der Absicht, alle *.asc- Einträge zu lesen:
«READ(1:DIRECT DIR: \\och-1085\daten\*.asc)»
...
«READ(1:CLOSE)»
/

Lesekanal schliessen

Form

«READ(<Kanal>:CLOSE)»

Funktion

Lesekanal schliessen

Parameter

<Kanal>: 1|2|3|4

Rückgabe

-

Bemerkungen

Durch Lese- oder Schreibvorgänge belegte Kanäle werden durch diese Operation wieder freigegeben.
Achtung
Achtung
Bis zum Verarbeitungsende oder -abbruch nicht geschlosse Lesekanäle werden zwar automatisch wieder freigegeben, aus Systemsicht bleibt jedoch der Dateizugriff bestehen.
Das bedeutet, dass so lange keine Schreibvorgänge mehr auf dieser Datei ausgeführt werden können, bis die aktuelle OpaccERP-Session beendet wird.

Beispiele

Die folgenden Beispiele sollen in erster Linie die Syntax erläutern.

Beispiel 1

Lesekanal auf Datei ..\tx\test.txt öffnen und wieder schliessen:
«READ(1:DIRECT DIR: ..\tx\test.txt)»
...
«READ(1:CLOSE)»
/

Beispiel 2

Lesekanal auf Verzeichnis ..\tx öffnen und wieder schliessen:
«READ(1:DIRECT DIR: ..\tx\*.asc)»
...
«READ(1:CLOSE)»
/

Nächste Zeile in Puffer holen

Form

«READ(<Kanal>:)»

Funktion

nächste Zeile in Puffer holen

Parameter

<Kanal>: 1|2|3|4

Rückgabe

N
Konnte die nächste Zeile eingelesen werden, wird 1 zurückgegeben.
Konnte die nächste Zeile nicht eingelesen werden, wird 0 zurückgegeben (Dateizeiger befindet sich am Dateiende oder der angegebene Lesekanal besteht gar nicht).

Bemerkungen

'Zeilen' ohne CR+LF werden bis zum Dateiende gelesen.
Der Inhalt des Puffers kann mit
«READ(<Kanal>:MEM)»
«READ(<Kanal>:MEM <Anzahl Zeichen>,<Position>)» oder
«READ(<Kanal>:MEM -<Trennzeichen>)»
gelesen werden.
Diese Operation kann sowohl im Zusammenhang mit
«READ(<Kanal>:DIRECT <Datei>)»
als auch mit
«READ(<Kanal>:DIRECT DIR: <Datei>)»
verwendet werden.

Beispiele

Die folgenden Beispiele sollen in erster Linie die Syntax erläutern.

Beispiel 1

3. Zeile von ..\tx\test.txt lesen:
«READ(1:DIRECT ..\tx\test.txt)»
«READ(1:)»
«READ(1:)»
«READ(1:)»
«READ(1:MEM)»
«READ(1:CLOSE)»
/

Beispiel 2

1. Datei *.txt im Verzeichnis ..\tx lesen:
«READ(1:DIRECT DIR: ..\tx)»
«READ(1:)»
«READ(1:MEM)»
«READ(1:CLOSE)»
/

Nächstes Feld auf der aktuellen Zeile in Puffer holen (CSV-Dateiformat)

Form

«READ(<Kanal>:-)»

Funktion

Nächstes Feld auf der aktuellen Zeile in Puffer holen (CSV-Dateiformat)

Parameter

<Kanal>: 1|2|3|4

Rückgabe

N
Konnte das nächste Feld auf der aktuellen Zeile eingelesen werden, wird 1 zurückgegeben.
Konnte das nächste Feld auf der aktuellen Zeile nicht eingelesen werden, wird 0 zurückgegeben (kein nächstes Feld auf der aktuellen Zeile vorhanden oder der angegebene Lesekanal besteht gar nicht).

Bemerkungen

CSV-Dateiformat (Zeilen enthalten Trennzeichen welche die einzelnen "Felder" separieren. Die Struktur jeder Zeile muss dabei übereinstimmen.)
-
Trennzeichen (Feldtrenner) ist Komma.
Kommas und doppelte Anführungszeichen werden nicht interpretiert, wenn ein Feld in einfachen Anführungszeichen steht ('Van, "The Man", Morrison').
Kommas und einfache Anführungszeichen werden nicht interpretiert, wenn ein Feld in doppelten Anführungszeichen steht ("Van, 'The Man', Morrison").
Wird das letzte Feld auf einer Zeile nicht mit Komma abgeschlossen, gibt die Operation zwar 0 zurück, liest das Feld aber trotzdem in den Puffer.
Der Inhalt des Puffers kann mit
«READ(<Kanal>:MEM)»
«READ(<Kanal>:MEM <Anzahl Zeichen>,<Position>)» oder
«READ(<Kanal>:MEM -<Trennzeichen>)»
gelesen werden.
Diese Operation kann (theoretisch) sowohl im Zusammenhang mit
«READ(<Kanal>:DIRECT <Datei>)»
als auch mit
«READ(<Kanal>:DIRECT DIR: <Datei>)»
verwendet werden.

Beispiele

Die folgenden Beispiele sollen in erster Linie die Syntax erläutern.

Beispiel 1

1. Zeile überlesen (!) (Header-Informationen), 3. Feld lesen auf Zeile 2, 3. Feld lesen auf Zeile 3:
«READ(1:DIRECT ..\tx\test.txt)»
«READ(1:)»
«READ(1:-)»
«READ(1:-)»
«READ(1:-)»
«READ(1:MEM)»
«READ(1:)»
«READ(1:-)»
«READ(1:-)»
«READ(1:-)»
«READ(1:MEM)»
«READ(1:CLOSE)»
/

Puffer auslesen

Form

«READ(<Kanal>:MEM)»

Funktion

Puffer auslesen

Parameter

<Kanal>: 1|2|3|4

Rückgabe

A
Es wird der Inhalt des Puffers zurückgegeben.

Bemerkungen

Der Puffer wird mit
«READ(<Kanal>:)» oder mit
«READ(<Kanal>:-)»
eingelesen.
Diese Operation kann sowohl im Zusammenhang mit
«READ(<Kanal>:DIRECT <Datei>)»
als auch mit
«READ(<Kanal>:DIRECT DIR: <Datei>)»
verwendet werden.

Beispiele

Die folgenden Beispiele sollen in erster Linie die Syntax erläutern.

Beispiel 1

2. Zeile von ..\tx\test.txt einlesen und ausgeben:
«READ(1:DIRECT ..\tx\test.txt)»
«READ(1:)»
«READ(1:)»
«READ(1:MEM)»
«READ(1:CLOSE)»
/

Beispiel 2

Die ersten beiden *.asc-Einträge im Verzeichnis ..\tx einlesen und ausgeben:
«READ(1:DIRECT ..\tx\*.asc)»
«READ(1:)»
«READ(1:MEM)»
«READ(1:)»
«READ(1:MEM)»
«READ(1:CLOSE)»
/

Puffer lesen bis zum nächsten Trennzeichen

Form

«READ(<Kanal>:MEM -<Trennzeichen>)»

Funktion

Puffer lesen bis zum nächsten Trennzeichen

Parameter

<Kanal>: 1|2|3|4

Rückgabe

A
Es wird der Inhalt des Puffers bis zum nächsten Trennzeichen zurückgegeben.

Bemerkungen

Die eingelesenen Zeichen werden im Puffer gelöscht, d.h. sie sind auch mit
«READ(<Kanal>:MEM)»
nicht mehr zugänglich.
Wird das letzte Feld auf einer Zeile nicht mit einem Trennzeichen abgeschlossen, wird einfach der Rest des Puffers ausgegeben.
Der Puffer wird mit
«READ(<Kanal>:)» oder mit
«READ(<Kanal>:-)»
eingelesen.
Diese Operation kann sowohl im Zusammenhang mit
«READ(<Kanal>:DIRECT <Datei>)»
als auch mit
«READ(<Kanal>:DIRECT DIR: <Datei>)»
verwendet werden.

Beispiele

Die folgenden Beispiele sollen in erster Linie die Syntax erläutern.

Beispiel 1

Auf Zeile 2 und 3 jeweils die ersten beiden Felder lesen:
«READ(1:DIRECT ..\tx\test.txt)»
«READ(1:)»
«READ(1:)»
«READ(1:MEM -;)»
«READ(1:MEM -;)»
«READ(1:)»
«READ(1:MEM -;)»
«READ(1:MEM -;)»
«READ(1:CLOSE)»
/

Anzahl Zeichen ab Position aus Puffer lesen

Form

«READ(<Kanal>:MEM <Anzahl Zeichen>,<Position>)»

Funktion

Anzahl Zeichen ab Position aus Puffer lesen

Parameter

<Kanal>: 1|2|3|4

Rückgabe

A
Es wird der Inhalt des Puffers, Anzahl Zeichen ab Position, zurückgegeben.

Bemerkungen

Der Puffer wird mit
«READ(<Kanal>:)»
oder mit
«READ(<Kanal>:-)»
eingelesen.
Diese Operation kann sowohl im Zusammenhang mit
«READ(<Kanal>:DIRECT <Datei>)»
als auch mit
«READ(<Kanal>:DIRECT DIR: <Datei>)»
verwendet werden.

Beispiele

Die folgenden Beispiele sollen in erster Linie die Syntax erläutern.

Beispiel 1

Auf Zeile 2 die ersten 4 Stellen und Stellen 8-11 lesen, auf Zeile 3 6 Stellen ab Stelle 20 lesen:
«READ(1:DIRECT ..\tx\test.txt)»
«READ(1:)»
«READ(1:)»
«READ(1:MEM 4,1)»
«READ(1:MEM 4,8)»
«READ(1:)»
«READ(1:MEM 6,300)»
«READ(1:CLOSE)»
/

Dateigrösse in Bytes ermitteln

Form

«READ(<Kanal>:SIZE)»

Funktion

Dateigrösse in Bytes ermitteln

Parameter

<Kanal>: 1|2|3|4

Rückgabe

N

Bemerkungen

Diese Operation kann nur im Zusammenhang mit
«READ(<Kanal>:DIRECT <Datei>)»
nicht aber mit
«READ(<Kanal>:DIRECT DIR: <Datei>)»
verwendet werden

Beispiele

Die folgenden Beispiele sollen in erster Linie die Syntax erläutern.

Beispiel 1

Dateigrösse von ..\tx\test.txt ermitteln:
«READ(1:DIRECT ..\tx\test.txt)»
«READ(1:SIZE)»
«READ(1:CLOSE)»
/

Ein Teil des Textinhaltes über eine Anzahl Bytes einlesen

Form

«READ(<Kanal>:BLOCK <Anzahl Byte>)»

Funktion

Ein Teil des Textinhaltes über eine Anzahl Bytes einlesen.

Parameter

<Kanal>:BLOCK <Anzahl Byte>

Rückgabe

N
Konnte der Lesekanal geöffnet werden, wird 1 zurückgegeben.

Bemerkungen

Mit dieser Operation kann eine genaue Anzahl von Bytes aus einem File ausgelesen werden.

Beispiele

«READ(1:DIRECT ..\tx\test.txt)»
«READ(1:BLOCK 650)»
«READ(1:CLOSE)»
# Aus dem File test.txt werden die ersten 650 Bytes ausgelesen.

F-Script Befehlszeichen ersetzen

Form

«READ(<Kanal>:DIRECT "<Ersatzzeichen>" <Datei>)»

Funktion

F-Script Befehlszeichen ersetzen.

Parameter

<Kanal>:DIRECT "<Ersatzzeichen>" <Datei>

Rückgabe

N
Konnte der Lesekanal geöffnet werden, wird 1 zurückgegeben.

Bemerkungen

«READ(<Kanal>:DIRECT "<Ersatzzeichen>" <Datei>)»
Der optionale Parameter <Ersatzzeichen> besteht dabei aus zwei Zeichen welche die F-Script Befehlszeichen ersetzen.
char(174) « wird durch das erste Zeichen ersetzt.
char(175) » wird durch das zweite Zeichen ersetzt.

Beispiele

«READ(1:DIRECT "!+" ..\tx\input.txt)»
« wird durch ! ersetzt.
» wird durch + ersetzt.

Hinweis

Soll festgestellt werden ob F-Script Befehlszeichen im Buffer vorhanden sind oder durch obige Funktionalität ersetzt wurden, kann dies folgendermassen gemacht werden:
«READ(<Kanal>:MEM ?)» - Rückgabe: 0/1
0 = Keine F-Script Befehlszeichen vorhanden oder ersetzt.
1 = F-Script Befehlszeichen vorhanden oder ersetzt.

ANSI / UTF8 -codierte Dateien direkt einlesen

Form

«READ(<Kanal>:DIRECTANSI <Datei>)»
«READ(<Kanal>:DIRECTUTF8 <Datei>)»

Funktion

ANSI / UTF8 Dateien direkt einleisen.
Überall dort wo der DIRECT-Parameter beim READ-Befehl verwendet wird, steht auch der Parameter DIRECTANSI bzw DIRECTUTF8 zur Verfügung.

Parameter

<Kanal>:DIRECTANSI <Datei>

Rückgabe

N
Konnte der Lesekanal geöffnet werden, wird 1 zurückgegeben.

Bemerkungen

«READ(<Kanal>:DIRECTANSI <Datei>)»

Beispiele

Einzulesender Datensatz:
Hans Müller
Ohne Konvertierung: «READ(1:DIRECT ..\TX\ANSI.txt)» 
Mit Konvertierung: «READ(1:DIRECTANSI ..\tx\ANSI.txt)»
Ergebnis:
Ohne Konvertierung: Hans Mõller
Mit Konvertierung: Hans Müller

ANSI / UTF8: Lesekanal auf Verzeichnisse öffnen

Form

«READ(<Kanal>:DIRECTANSI DIR <Datei>)»
«READ(<Kanal>:DIRECTUTF8 DIR <Datei>)»

Funktion

ANSI / UTF8: Lesekanal auf Verzeichnisse öffnen.
Überall dort wo der DIRECT-Parameter beim READ-Befehl verwendet wird, steht auch der Parameter DIRECTANSI bzw. DIRECTUTF8 zur Verfügung.

Parameter

<Kanal>:DIRECTANSI DIR 1|2|3|4
<Kanal>:DIRECTANSI DIR <Datei>:[<Laufwerk:>|<Netzwerk-Ressourcen>][<Pfad>][<Dateiname>|<Device>]

Rückgabe

N
Konnte der Lesekanal geöffnet werden, wird 1 zurückgegeben.

Bemerkungen

«READ(<Kanal>:DIRECTANSI DIR <Datei>)»

Beispiele

«READ(1:DIRECTANSI DIR ..\tx\*.txt)»
Einzulesende Dateien:
müller.txt
ärmel.txt
kübel.txt