-
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.
-
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 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.
-
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
-
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
-
der Pre Compiler könnt' von mir gewesen sein
 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
-
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
-
Hi,
Ich denke da musst du wohl mit
SETTL und READE arbeiten statt mit dem CHAIN, da dort der %EOF gesetzt wird statt dem %FOUND
Allerdings steht es dir auch wiederum frei Schalter zu setzen (gibts ja Gerüchteweise noch in RPGLE *g*)
Ich persönlich habe bereits seit jeder ein SETLL und READE gemacht, ist aber eine rein persönliche Einstellung
Gruss
Rince
-
Naja, einen Unterschied gibt es doch zwischen den Methoden:
Der CHAIN liest Daten, der SETLL eben nicht.
Dadurch ergeben sich Unterschiede in der Schleife.
@Ronald
Warum sind LEAVE und ITER da nicht erlaubt ? Alles andere kann ich ja verstehen.
In anderen Sprachen heißen die nun mal BREAK und CONTINUE. Wäre ganz schön problematisch, wenn man schon keinen GOTO verwenden darf wenns die nicht geben würde. Oder man muss sich halt wieder Hilfskonstrukten bedienen um diese zu umgehen, was der Lesbarkeit von Programmen aber stark widerspricht.
-
PASCAL kundige kommen ohne GOTO, und deren Varianten Leave, Iter, Break und Continue aus und das ohne jeden Verlust von Lesbarkeit. Der Schlüssel dazu ist feinkörnige Modularisierung und sprechende Namen. (siehe auch dow lieswas()...)
Dieter
 Zitat von Fuerchau
Naja, einen Unterschied gibt es doch zwischen den Methoden:
Der CHAIN liest Daten, der SETLL eben nicht.
Dadurch ergeben sich Unterschiede in der Schleife.
@Ronald
Warum sind LEAVE und ITER da nicht erlaubt ? Alles andere kann ich ja verstehen.
In anderen Sprachen heißen die nun mal BREAK und CONTINUE. Wäre ganz schön problematisch, wenn man schon keinen GOTO verwenden darf wenns die nicht geben würde. Oder man muss sich halt wieder Hilfskonstrukten bedienen um diese zu umgehen, was der Lesbarkeit von Programmen aber stark widerspricht.
-
Hallo Baldur,
ich benutzte auch genau Deine Methode, nur anstatt
"dow 1=1" habe ich bis jetzt angegeben "dow *inlr = off".
Es gibt Ansichten, dass ITER und LEAVE nie benutzt werden sollten, da diese einem GOTO entsprechen. Das muss jedoch erkauft werden mit einem doppelten READ (vor der Schleife und am Ende der Schleife). Für mich ist ITER und LEAVE bedeutend lesbarer.
mfg. Ludger
-
 Zitat von loeweadolf
Es gibt Ansichten, dass ITER und LEAVE nie benutzt werden sollten, da diese einem GOTO entsprechen. Das muss jedoch erkauft werden mit einem doppelten READ (vor der Schleife und am Ende der Schleife). Für mich ist ITER und LEAVE bedeutend lesbarer.
Verwendet ihr eigentlich Subroutinen?
Wenn ja lasst es bleiben! Auch das sind GOTOs!
Similar Threads
-
By Kampi4 in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 09-10-06, 10:19
-
By srcdbgr in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 12-09-06, 14:37
-
By deni87991 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 04-08-06, 10:32
-
By woki in forum NEWSboard Java
Antworten: 3
Letzter Beitrag: 06-06-06, 15:57
-
By Deficiency in forum NEWSboard Java
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks