[NEWSboard IBMi Forum]

Thema: DOW NOT %EOF

Hybrid View

  1. #1
    Registriert seit
    Jul 2003
    Beiträge
    63

    DOW NOT %EOF

    Hallo *ALL,

    früher war's so elegant:

    Key chain datei IN (partial key)
    dow not IN
    verarb ......
    Key reade datei IN
    enddo

    Kann ich hier auch mit "dow not %eof" arbeiten oder
    muß nach dem chain zunächt auf %found abgefragt werden???

    Danke im Voraus

    K. Hardy

  2. #2
    Registriert seit
    May 2002
    Beiträge
    1.121
    Hallo Hardy,

    vielleicht hilft Dir ja das weiter
    PHP-Code:
    c     Key           SetLL     MyFile                  
    c     Key           ReadE     MyFile                  
    c                   DoW       not 
    %EoFMyFile )      
    c                                                     
       
    ....         Verarbeitung                          
    c                                                     
    c     Key           ReadE     MyFile                  
    c                   EndDo 
    Tschau Ronald

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Marimari1009
    Hallo *ALL,

    früher war's so elegant:

    Key chain datei IN (partial key)
    dow not IN
    verarb ......
    Key reade datei IN
    enddo

    Kann ich hier auch mit "dow not %eof" arbeiten oder
    muß nach dem chain zunächt auf %found abgefragt werden???

    Danke im Voraus

    K. Hardy
    Hi,

    %EOF(FileName) wird seit Release V5R1M0 beim CHAIN auf *OFF gesetzt, wenn ein Satz gefunden wurde. Ansonsten bleibt %EOF(FileName) unverändert!

    Wichtig ist der Datei-Name muss unbedingt beim %EOF angegeben werden. Sonst klappt es nicht!

    Wie beim CHAIN wird der %EOF(DateiName) auch bei OPEN, SETLL und SETGT gesetzt.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Grundsätzlich programmiere ich die Schleifen anders:

    /free
    setll (key) myfile;
    dow 1=1;
    reade (key) myfile;
    if %eof(myfile);
    leave;
    endif;
    // Prüfungen und ggf. Verarbeitungen
    // z.B.:
    if myfeld = nichtrelevant;
    iter;
    endif;

    enddo;
    /end-free

    Der Vorteil, den Read an den Anfang der Schelife zu legen ist, dass ich mit "iter" ohne Label an den Anfang zum nächsten Lesen springen kann. und nicht per IF-Konstrukte irgendwie schachteln muss.
    Ich definiere den Reade auch nur 1 Mal.

    Der "dow 1=1;" erzeugt eine Dauerschleife, so wie früher der "do *hival".
    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

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    @Baldur: den Schönheitspreis würdest du dafür von mir nicht bekommen; ich stehe da eher auf:

    dow lieswas();
    machwas();
    enddo;

    wobei lieswas liest und machwas macht!

    mfg

    Dieter Bender

    Zitat Zitat von Fuerchau
    Grundsätzlich programmiere ich die Schleifen anders:

    /free
    setll (key) myfile;
    dow 1=1;
    reade (key) myfile;
    if %eof(myfile);
    leave;
    endif;
    // Prüfungen und ggf. Verarbeitungen
    // z.B.:
    if myfeld = nichtrelevant;
    iter;
    endif;

    enddo;
    /end-free

    Der Vorteil, den Read an den Anfang der Schelife zu legen ist, dass ich mit "iter" ohne Label an den Anfang zum nächsten Lesen springen kann. und nicht per IF-Konstrukte irgendwie schachteln muss.
    Ich definiere den Reade auch nur 1 Mal.

    Der "dow 1=1;" erzeugt eine Dauerschleife, so wie früher der "do *hival".
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Naja, Dieter, würde ich ja auch gerne machen.
    Dies Bedeutet aber, dass ich das Lesen in ene Prozedur verlegen muss, ansonsten bietet RPG das leider nicht. Wie schön wäre ein Konstrukt á la C++/Java o.ä.:

    dow %eof(reade (Key) myfile)=*OFF;
    // mach was
    enddo;

    Also behelfe ich mir so. Ausserdem habe ich das schon in RPG klassisch gemacht:
    key setll myfile
    do *hival
    key reade myfile 99
    *99 ifeq *on
    leave
    endif

    :
    :
    enddo

    Zugegeben nicht schön, aber GOTO-Frei.
    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

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    wenn du die Prozeduren von der Gage abgezogen kriegst, dann sind deine Verträge verkehrt. Und was haben wir früher nicht alles gemacht:
    'A' DOWEQ 'A' war auf der /36 ein Geheimtip. das war schneller als
    DO *HIVAL

    Dieter

    Zitat Zitat von Fuerchau
    Naja, Dieter, würde ich ja auch gerne machen.
    Dies Bedeutet aber, dass ich das Lesen in ene Prozedur verlegen muss, ansonsten bietet RPG das leider nicht. Wie schön wäre ein Konstrukt á la C++/Java o.ä.:

    dow %eof(reade (Key) myfile)=*OFF;
    // mach was
    enddo;

    Also behelfe ich mir so. Ausserdem habe ich das schon in RPG klassisch gemacht:
    key setll myfile
    do *hival
    key reade myfile 99
    *99 ifeq *on
    leave
    endif

    :
    :
    enddo

    Zugegeben nicht schön, aber GOTO-Frei.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Oh danke, Dieter, den Tipp werde ich mir merken. Mal sehen, wieviele Microsekunden ich dadurch spare, insbesonders wenn innerhalb der Schleifen E/A-Operationen durchgeführt werden
    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

  9. #9
    Registriert seit
    May 2002
    Beiträge
    1.121
    ich denke mal hier sind wir wieder an einem punkt, wo wohl jeder von uns seine eigene vorliebe zur gestaltung von schleifen hat.
    ich hatte mal nen arbeitgeber, da war nix mit LEAVE, ITER, GOTO, COMP, CABxx (hallo marcus ) . sowas wurde schon vom precompiler abgefangen so das man(n) es garnicht erst wandeln konnte.

    gruß ronald

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    der Pre Compiler könnt' von mir gewesen sein

    Zitat Zitat von malzusrex
    ich denke mal hier sind wir wieder an einem punkt, wo wohl jeder von uns seine eigene vorliebe zur gestaltung von schleifen hat.
    ich hatte mal nen arbeitgeber, da war nix mit LEAVE, ITER, GOTO, COMP, CABxx (hallo marcus ) . sowas wurde schon vom precompiler abgefangen so das man(n) es garnicht erst wandeln konnte.

    gruß ronald
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Jul 2003
    Beiträge
    63
    Huch, was hab ich denn da losgetreten?

    Wollte bloß wissen:

    Liefert der Vergleich: "if %eof(myfile)"
    den Wert "true",
    wenn ein unmittelbar vorangeganger
    "mykey chain myfile" fehlschlug ?????????

    vielen Dank

    K. Hardy

Similar Threads

  1. "Environment variable not found"
    By Kampi4 in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 09-10-06, 10:19
  2. IBM DB2 Client Configuration Assistant
    By srcdbgr in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 12-09-06, 14:37
  3. NOT NULL WITH DEFAULT
    By deni87991 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 04-08-06, 10:32
  4. Antworten: 3
    Letzter Beitrag: 06-06-06, 15:57
  5. Antworten: 2
    Letzter Beitrag: 12-10-05, 15:29

Berechtigungen

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