PDA

View Full Version : Sätze auslesen und in andere Datei schreiben



chrisssiie
13-06-07, 14:08
Hallo,

kenn mich noch nicht so mit rpg aus.

wie kann ich sätze von einer phy datei auslesn und in eine andere schreiben mit RPG?

Hätte so gedacht, aber der geht in meine if bedingung net rein -.-



FALADDR0 UF E K DISK A
F*
F*
FVKKUND0 IF E K DISK
C $KLAP KLIST
C KFLD IDEN01
C READ VKKUNDR 89
C*
C *IN89 DOWEQ'0'
C*
C MOVELKDNRKU IDEN01
C*
C $KLAP CHAINALADDRR 87
C *IN87 IFEQ *OFF
C*
C MOVELFNA1KU NAMEAD
C MOVELFNA2KU VORNAD
C MOVELVSTRKU STRAAD
C MOVELLANDKU LANDAD
C MOVELFPLZKU POLZAD
C MOVELVPSFKU POFAAD
C MOVELPZPFKU PLZPAD
C MOVELFORTKU AORTAD
C MOVELTELFKU TELEAD
C MOVELTELXKU TFAXAD
C MOVELWTJJKU GEBJAD
C MOVELWTTTKU GEBTAD
C MOVELWTMMKU GEBMAD
C MOVELURLKKU WEBSAD
C MOVELEMAIKU EMAIAD
C*
C WRITEALADDRR
C*
C ENDIF
C READ VKKUNDR 89
C ENDDO
C *LIKE DEFN IDENAD IDEN01
Vielen dank schonmal für eure antworten ;)

Pikachu
13-06-07, 14:51
Die Zeile mit dem CHAIN ist teilweise um eine Stelle nach links verrutscht. Vielleicht wurde das Programm nicht gewandelt und du rufst deshalb immer einen älteren Stand des Programms auf? Andere Möglichkeit: Sind IDENAD und KDNRKU vielleicht numerisch, aber unterschiedlich lang defininert? Falls ja, bräuchtest du einen MOVE anstelle des MOVEL.

Fuerchau
13-06-07, 14:53
Wenn ich mir die Logik ansehe, musst du auf *ON prüfen -> Satz nicht da, da du anscheinend nur neue Sätze kopieren möchtest.

Spateneder
14-06-07, 14:58
Man kann RPG - sogar das hier verwendete RPG III - übrigens auch als höhere Programmiersprache behandeln und numerische Werte mit Z-ADD übertragen. Dann können einige der angedeuteten Probleme gar nicht erst auftreten. Ein Problem bleibt aber: Auch Z-ADD erkennt keinen Überlauf, d.h., wenn du 1234 in ein dreistelliges numerisches Feld stellst, enthält es hinterher den Wert 234 und dein Programm läuft klaglos mit dem falschen Wert weiter.
Mit solchen Verschrobenheiten (wie auch mit den weiter oben erwähnten, unsäglichen MOVEs von numerischen Werten) haben wir alten RPG-Heinis z.B. Datumsverarbeitung betrieben, und wir waren alle mächtig stolz auf unsere vermeintlich genialen Operationen!
Und damit zum Thema: Wenn du dich mit RPG beschäftigen willst, warum RPG III? Für das Verständnis von alten RPG-Schinken ist es vielleicht sinnvoll, nicht sofort mit dem freien Format zu beginnen, aber ILE RPG wäre schon zu empfehlen.
IBM bietet im iSeries Information Center unter /Programmierung/RPG einiges an Handbüchern, ansonsten gibt es auch ganz gute Einführungen auf dem Buchmarkt.
Dann kannst du dir ja mal den Operationscode EVAL (mit Überlaufprüfung) ansehen und einige BIFs (eingebeute Funktionen ) wie %EOF und %FOUND, damit du dich nicht mit der Bezugszahlen-Seuche infizierst, an der wir alle leiden.
Und denk darüber nach, ob du nicht den Ausgabesatz komplett initialisieren könntest, bevor du Werte überträgst und den Satz wegschreibst. Wer weiß, vielleicht wächst ja dein Programm (oder die Ausgabedatei) mal ...
Viel Spaß (das meine ich ehrlich)
Mathias Spateneder

Bernd Wiezroek
15-06-07, 07:39
Wenn wir bei Empfehlungen sind.

Noch 2

Für RPG III würde ich STRISDB empfehlen das ist der inline Debugger. Damit findet man logische Fehler immer am schnellsten.

Bie ILE mit Testoption *souce umwandeln. Dann hat mann auch den Inlinedebugger.