Was richtet 'erase off' da an?
Allers Heinrich
allers at goethe.de
Mi Okt 1 17:42:03 CEST 2003
Unter der Demo-Datenbabk legt folgende Flexdatei einen Datensatz brav in die
Datei xx10.alg ab und liest diese Datei anschließend zweimal ein und
schreibt die unveränderte Ausgabe in die Dateien xx11.alg und xx12.alg:
set db
f per herms?
xport p i-1
xport f xx10.alg
dow set
close x
close res
xport p i-1
xport f xx11.alg
erase off
read file xx10.alg
first off\if no jump weit02
:naechst2
dow
next off\if no jump weit02
jump naechst2
:weit02
close x
xport p i-1
xport f xx12.alg
mes VOR erase off!
erase off
mes NACH erase off!
read file xx10.alg
first off\if no jump weit03
:naechst3
dow
next off\if no jump weit03
jump naechst3
:weit03
close x
mes FERTIG!
end
Zur Eingrenzung des im folgenden zu schildernden Problems lasse ich die
beiden diagnostischen Meldungen "VOR erase off!" und "NACH erase off!"
ausgeben. Diese Meldungen erscheinen auch und am Ende habe ich die drei
Dateien xx1?.alg zur Verfügung - wie eigentlich bei solch einer simplen
Aktion auch nicht anders zu erwarten.
###
Unter zugegebenermaßen anderen Bedingungen (t3,k6-Konfiguration mit d.cfg)
lasse ich auf einer anderen Datenbank folgende Flexdatei ihre Arbeit tun:
set db
f krg hep?
xport p i-1
xport f xx10.dlg
dow set
close x
close res
xport p i-1
xport f xx11.dlg
erase off
read file xx10.dlg
first off\if no jump weit02
:naechst2
dow
next off\if no jump weit02
jump naechst2
:weit02
close x
xport p i-1
xport f xx12.dlg
mes VOR erase off!!!
erase off
mes NACH erase off!!!
read file xx10.dlg
first off\if no jump weit03
:naechst3
dow
next off\if no jump weit03
jump naechst3
:weit03
close x
mes FERTIG!
end
Auch hier habe ich die beiden diagnostischen Meldungen "VOR erase off!!!"
und "NACH erase off!!!" eingebaut, aber - und nun kommt 's!!! - nur deren
erste erscheint, die zweite dagegen ("NACH erase off!!!") wird überhaupt
nicht ausgegeben, die Flexdatei wird nicht bis zum Ende abgearbeitet und
logischerweise fehlt mir am Ende auch die Datei xx12.dlg! :-((
Immerhin wird die Datei xx11.dlg noch brav produziert. Aber der an die
Meldung "VOR erase off!!!" anschließende Befehl 'erase off' verursacht
offensichtlich den Abbruch der Abarbeitung.
WARUM???
Hat da jemand eine Idee, nach bloßem Ansehen der Flexdatei? (Ich scheue
nämlich noch die Mühe eines Demopaketes, das diese Sache vorzuführen in der
Lage ist). Ich wäre ja richtig dankbar, wenn mir da jemand einen logischen
oder Denkfehler nachweisen würde! :-))
Mit herzlichen Grüßen:
Heinrich Allers
Goethe-Institut, Ber. 532 (EDV)
Dachauer Str. 122 * D-80637 München
Tel. ++89 / 15921 471 * Telefax ++89 / 15921 435
allers at goethe.de * http://home.t-online.de/home/allers
Mehr Informationen über die Mailingliste Allegro