Fragen zu 'read file ...', first off, next off ...

Heinrich Allers allers at t-online.de
Mi Jan 16 07:38:07 CET 2002


Ich möchte eine 6 Datensätze umfassende Grunddatei (sechs.alg) in 
eine Datenbank (und zwar in Datei <dbn>_11.ald) unbesehen (d.h. 
ohne Primärschlüsselvergleich) einbringen und benutze dazu 
folgende (zu diagnostischen Zwecken erweiterte) Flexdatei:


erase off
read file sechs.alg
first off
if no jump ende
var "Erster: " #00
mes
dow
input 11
put new
:naechst
next off
if no jump ende
var "Nächster: " #00
ansi
mes
dow
input 11
put new
jump naechst
:ende
mes FERTIG!!!
close
erase off
end


Das, was parallel zum Ablauf der Flexdatei geschieht, vermag ich 
ihrer Gestaltung (der eingestreuten 'mes') wegen Schritt für Schritt 
zu beobachten, und zwar beobachte ich sowohl das Wachsen der 
anfangs nicht vorhandenen Datei output.adt als auch (im Register 
der Datenbank) den Erfolg des satzweisen Einbringens der 
Grunddatei.

Folgende seltsame Beobachtungen mache ich:

1.
Da die Grunddatei 6 Sätze umfaßt, müßte die Abarbeitung der 
Flexdatei in _sechs_ Schritten erfolgen. Das tut sie aber nicht - es 
sind _acht_ Schritte!

2.
Der erste der Schritte folgt dem 'first off', das ist richtig. Die 
folgenden 7 Schritte (von denen es eigentlich nur 5 geben dürfte) 
folgen dem 'next off'.

3.
Schritt 1 (dem 'first off') folgend, schreibt den ersten Satz der 
Grunddatei in die Datenbank. Schritt 2 (dem 'next off') folgend, 
schreibt den zweiten Satz der Grunddatei in die Datenbank. Bis 
dahin richtig, aber ab dann, bei den folgenden (sechs) Schritten, 
wird _nichts_ mehr in die Datenbank geschrieben! Warum nicht?

4.
output.adt wird (mittels 'dow') Schritt für Schritt mit den 
Datensätzen gefüllt, die nacheinander aus sechs.alg gelesen 
werden - richtig, was die ersten 6 Schritte bzw. die insgesamt 6 
Sätze von sechs.alg betrifft. Aber anschließend wird die Schleife 
':naechst' ... 'jump naechst' noch weitere zwei Male (der 7. und 8. 
Schritt halt) durchlaufen, und dabei wird noch einmal der erste und 
der zweite Satz aus der Grunddatei sechs.alg in output.adt 
hineingeschrieben, derart, daß in output.adt am Ende 8 Sätze 
stehen! Frage Warum dieser Nachklapp von 2 Schleifendurchläufen?


Kann mir jemand weiterhelfen?

Rat- und hilflos grüßt:

Heinrich Allers

allers at t-online.de * http://home.t-online.de/home/allers
Die Angriffstruppen in Afghanistan erbomben sich mit Streubomben 
(http://www.iwif.de/wf399-23.htm) den Status von Friedenstruppen.




Mehr Informationen über die Mailingliste Allegro