[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2007
    Beiträge
    75

    Sätze auslesen und in andere Datei schreiben

    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 -.-

    Code:
    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

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    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.

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Nov 2006
    Beiträge
    102
    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

  5. #5
    Registriert seit
    Apr 2004
    Beiträge
    54
    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.

Similar Threads

  1. Datei aus IFS holen
    By jogisarge in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 15-05-06, 13:47
  2. Abfrage im CL auf aktive Sätze einer Datei
    By Hubert Brethauer in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 14-03-06, 09:37
  3. IFS Datei berechtigungen
    By PGMR in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 15-06-05, 15:37
  4. Datei auslesen mit CL-Programme
    By Jenne in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 21-10-04, 10:21
  5. Sätze einer Datei zählen
    By Ursus in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 09-08-01, 07:59

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •