PDA

View Full Version : Zeilenweises lesen ein "nicht beschriebenen Datei"



LoCal
07-11-02, 10:38
Hallo,

wie kann ich ein "physical file" lesen, wenn es nicht beschrieben ist?

Prob ist folgendes.
Ich habe eine physische Datei erstellt (crtpf) und dann mit "cpyfrmpcd" eine TextDatei vom PC da rein kopiert.
Das Prob is, daß die Text Datei keine "reine" Struktur hat.
Soll heißen,
Zeile1: Datensatz Typ A
Zeile2: Datensatz Typ B
Zeile3: Datensatz Typ C
Zeile4: Datensatz Typ B
Zeile5: Datensatz Typ C
Zeile6: Datensatz Typ C
Zeile7: Datensatz Typ A

Ich glaube ihr seht was gemeint is... ich kann also keine "gescheite" Datensatz beschreibung machen.
Die Zeilen sind max. 400 Zeichen lang.
Wie kann ich die Datei nun in RPG einlesen und die Zeichenkette verarbeiten. Also mein prob ist nicht die verarbeitung sondern das einlesen.

Danke schonmal im voraus.

LoCal

alex
07-11-02, 10:52
Hey,

eigentlich recht einfach. Lese die Datei in RPG einfach sequentiell. Das machst du. in dem du im RPG in den F Bestimmungen unter
"Art der Satzadressierung" nichts einträgst.
Dann kannst du die Datei mit einer READ Schleife auslesen. ( Reihenfolge ist die relative Satznummer ).Dann kannst du für die unterschiedlichen Satzarten Datenstrukturen
erstellen und diese füllen.

Viel Glück

LoCal
07-11-02, 10:56
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von alex:
Hey,

eigentlich recht einfach. Lese die Datei in RPG einfach sequentiell. Das machst du. in dem du im RPG in den F Bestimmungen unter
"Art der Satzadressierung" nichts einträgst.
Dann kannst du die Datei mit einer READ Schleife auslesen. ( Reihenfolge ist die relative Satznummer ).Dann kannst du für die unterschiedlichen Satzarten Datenstrukturen
erstellen und diese füllen.

Viel Glück[/quote]


Und wie krieg ich das ganze dann in eine variable??? ich kann ja nicht einfach so ne datenstruktur machen... weil nur die ersten drei stellen sind immer gleich... der rest ist komplett anders... das ist das prob.

Gerlitz
07-11-02, 12:40
Falls es eine feste Stelle im Satz gibt, an der Du feststellen kannst ob es sich um den Satztyp A, B oder C handelt, dann kannst Du wie zu S36-Zeiten in den Dateiinputbestimmungen verschiedene Satzdefinitionen festlegen. Falls es so eine feste Stelle gibt, könnte ich Dir ein Beispiel posten.

Gruß

Matthias

B.Hauser
07-11-02, 12:55
Hier ein Beispiel:FFile______IF___F__132________DISK_______ __________
D_DSFile__________DS___________132________________ _
D__DSSatzArt_____________________3A_______________ _
__________________________________________________ _
D_DSSA1___________DS______________________________ _
D__DS1SatzArt____________________3A_______________ _
D__DS1Fld1______________________10A_______________ _
D__DS1Fld2______________________10A_______________ _
__________________________________________________ _
D_DSSA2___________DS______________________________ _
D__DS2SatzArt____________________3A_______________ _
D__DS2Fld1______________________15A_______________ _
D__DS2Fld2______________________20A_______________ _
__________________________________________________ _
C___________________do________*Hival______________ _
C___________________read______File__________DSFile _
C___________________if________%EOF________________ _
C___________________leave_________________________ _
C___________________endif_________________________ _
C___________________select________________________ ____
C___________________when______DSSatzArt_=_'SA1'___ ____
C___________________eval______DSSA1_______=_DSFile ____
C___________________when______DSSatzArt_=_'SA2'___ ____
C___________________eval______DSSA2_______=_DSFile ____
C___________________endsl_________________________ ____
__________________________________________________ ____
C___________________enddo_________________________ ____
_*________________________________________________ ____
C___________________eval______*InLR_______=_*on___ ____

Birgitta