F-Script |
![]() |
WichtigAchten Sie darauf, die Kanäle immer sauber zu
schliessen.
Beachten Sie, dass in den Pfadangaben (READ und WRITE)
nur ANSI-Zeichen erlaubt sind!
Einlesen von Tabulatoren (ab v23.02):
Wird eine Datei eingelesen welche Tabulatoren enthält, werden diese nicht
mehr in Spaces umgewandelt.
|
![]() |
NotizFür das Lesen
von xml-Dateien steht Ihnen der Service Common.XmlQuery
zur Verfügung.
|
Funktion | Beschreibung | ||
«READ(<Kanal>:DIRECT <Datei>)»
|
|||
«READ(<Kanal>:DIRECT DIR:
<Datei>)»
|
|||
«READ(<Kanal>:DIRECTANSI
<Datei>)»
|
|
||
«READ(<Kanal>:DIRECTANSI DIR
<Datei>)»
|
ANSI:
Lesekanal auf Verzeichnis öffnen
|
||
«READ(<Kanal>:DIRECTUTF8
<Datei>)»
|
UTF8:
Dateien direkt einlesen
|
||
«READ(<Kanal>:DIRECTUTF8 DIR
<Datei>)»
|
|
||
«READ(<Kanal>:)»
|
|||
«READ(<Kanal>:-)»
|
|||
«READ(<Kanal>:MEM)»
|
|||
«READ(<Kanal>:MEM
-<Trennzeichen>)»
|
|||
«READ(<Kanal>:MEM <Anzahl
Zeichen>,<Position>)»
|
|||
«READ(<Kanal>:MEM>XVarName)»
|
|||
«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>:CLOSE)»
|
![]() |
NotizArbeiten Sie wo immer möglich mit relativen
Pfaden.
|
«z~READ(1:DIRECT ..\tx\test.txt)\I»«GOTO(# JUMP-01)» «REPEAT» «zREAD(1:)\I»«READ(1:MEM)»«LOOP» «READ(1:CLOSE)» # JUMP-01 /
«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 /
# 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 /
«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 /
«z~READ(1:DIRECT DIR: ..\tx\*.txt)\I»«GOTO(# JUMP-01)» «REPEAT» «zREAD(1:)\I»«READ(1:MEM)»«LOOP» «READ(1:CLOSE)» # JUMP-01 /
# 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»
«READ(<Kanal>:DIRECT <Datei>)»
«READ(1:DIRECT ..\tx\test.txt)» ... «READ(1:CLOSE)» /
«READ(1:DIRECT ..\..\Transfer\Eingang\eingang.csv)» ... «READ(1:CLOSE)» /
«READ(1:DIRECT c:\temp\test.txt)» ... «READ(1:CLOSE)» /
«READ(1:DIRECT \\och-1085\daten\test.txt)» ... «READ(1:CLOSE)» /
«READ(<Kanal>:DIRECT DIR: <Datei>)»
«READ(1:DIRECT DIR: ..\tx)» ... «READ(1:CLOSE)» /
«READ(1:DIRECT DIR: ..\tx\*.asc)» ... «READ(1:CLOSE)» /
«READ(1:DIRECT DIR: c:\temp\test?.asc)» ... «READ(1:CLOSE)» /
«READ(1:DIRECT DIR: \\och-1085\daten\*.asc)» ... «READ(1:CLOSE)» /
«READ(<Kanal>:CLOSE)»
![]() |
AchtungBis 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.
|
«READ(1:DIRECT DIR: ..\tx\test.txt)» ... «READ(1:CLOSE)» /
«READ(1:DIRECT DIR: ..\tx\*.asc)» ... «READ(1:CLOSE)» /
«READ(<Kanal>:)»
«READ(1:DIRECT ..\tx\test.txt)» «READ(1:)» «READ(1:)» «READ(1:)» «READ(1:MEM)» «READ(1:CLOSE)» /
«READ(1:DIRECT DIR: ..\tx)» «READ(1:)» «READ(1:MEM)» «READ(1:CLOSE)» /
«READ(<Kanal>:-)»
«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)» /
«READ(<Kanal>:MEM)»
«READ(1:DIRECT ..\tx\test.txt)» «READ(1:)» «READ(1:)» «READ(1:MEM)» «READ(1:CLOSE)» /
«READ(1:DIRECT ..\tx\*.asc)» «READ(1:)» «READ(1:MEM)» «READ(1:)» «READ(1:MEM)» «READ(1:CLOSE)» /
«READ(<Kanal>:MEM -<Trennzeichen>)»
«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)» /
«READ(<Kanal>:MEM <Anzahl Zeichen>,<Position>)»
«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)» /
«READ(<Kanal>:SIZE)»
«READ(1:DIRECT ..\tx\test.txt)» «READ(1:SIZE)» «READ(1:CLOSE)» /
«nz~READ(1:DIRECTUTF8 DIR: ..\tmp\*.csv)\I»«GOTO(/)» # Liefert Anzahl gefundener csv-Dateien «READ(1:SIZE)» «READ(1:CLOSE)»
«READ(<Kanal>:BLOCK <Anzahl Zeichen/Bytes>)»
# ------------------------------------------------------------------------------------------------------ # Öffnen des Lesekanals «nz~READ(1:DIRECT «SYS(FULLPATH)»TMP\My_Adresslist.txt)\I»«GOTO(/)» # Erste 4 Zeichen einlesen (liefert Anzahl gelesener Zeichen zurück) «nREAD(1:BLOCK 4)\N» # Eingelesene Zeichen ausgeben Ausgabe: «READ(1:MEM)» # ------------------------------------------------------------------------------------------------------ # Nächste Zeile einlesen «nREAD(1:)» «nREAD(1:BLOCK 4)\N» # Eingelesene Zeichen ausgeben Ausgabe: «READ(1:MEM)» # ------------------------------------------------------------------------------------------------------ «READ(1:CLOSE)» /
«READ(<Kanal>:DIRECT "<Ersatzzeichen>" <Datei>)»
«READ(1:DIRECT "!+" ..\tx\input.txt)» « wird durch ! ersetzt. » wird durch + ersetzt.
«READ(<Kanal>:DIRECTANSI <Datei>)» «READ(<Kanal>:DIRECTUTF8 <Datei>)»
Ohne Konvertierung: «READ(1:DIRECT ..\TX\ANSI.txt)»
Mit Konvertierung: «READ(1:DIRECTANSI ..\tx\ANSI.txt)»
«READ(<Kanal>:DIRECTANSI DIR <Datei>)» «READ(<Kanal>:DIRECTUTF8 DIR <Datei>)»
«READ(1:DIRECTANSI DIR ..\tx\*.txt)»