PDA

View Full Version : DOW NOT %EOF



Seiten : 1 [2]

Marimari1009
23-02-05, 15:08
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

Rincewind
23-02-05, 15:54
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

Fuerchau
23-02-05, 16:33
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.

BenderD
23-02-05, 17:05
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


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.

loeweadolf
24-02-05, 09:21
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

B.Hauser
24-02-05, 12:04
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!

malzusrex
24-02-05, 12:32
na ja, wie gesagt das mit dem LEAVE, ITER, GOTO, ... war bei einem EX-arbeitgeber von mir. hintergrund war wohl das es da mal EXPERTEN gab, die am ende es proggies selber nicht mehr so genau wusten wo sie im programm lang wuseln, bzw bei nachträglicher erweiterungen des programmes vom einbau von DO-schleifen IF-abfragen .... plötzlich mit dem leave zwar ne schleife verlassen haben aber halt dann die falsche.
aber letztendlich ist es eigentlich egal ob nun mit oder ohne (LEAVE, ....), sollte eigentlich programme immer noch lesbar bleiben. und ich habe schon quellen gesehen .......

gruß ronald

Marimari1009
24-02-05, 13:08
und aus all dem schönen Gewürge und Geschleife werden dann im Assembler ganz simple goto's (CAB compare and branch)