-
n'Abend Haertl,
 Zitat von haertl
0131.00 C*** *IN93 DOUEQ '1'
0132.00 C*** *IN03 OREQ '1' F3
0133.00 C*** *IN12 OREQ '1' F12
0134.00 /FREE
0135.00 DOU %EOF OR *IN03;
0136.00 READC SUBF;
0137.00 /END-FREE
0138.00 C*** READC SUBF 9393 ERR/EOF
0139.00 /FREE
0140.00 IF NOT %EOF;
0141.00 /END-FREE
0142.00 C*** *IN93 IFEQ '0'
0143.00 C*** EXSR DATVER DATEI VERARB
0144.00 C*** ENDIF
0145.00 C*** ENDDO
0146.00 /FREE
0147.00 EXSR DATVER;
0148.00 ENDIF;
0149.00 ENDDO;
0150.00 Hallo Birgitta, wenn ich im fixed Format codiere (siehe C***) dann funktioniert es.
Wenn ich die free Format Befehle (siehe oben) nutze, bekomme ich bei leerem Subfile einen Einheitenfehler, weil der READC SUBF trotz EOF keine '1' setzt. IF NOT %EOF wird dann ausgeführt obwohl End of File zutrifft. Enthält das Subfile Datensätze dann funktioniert es auch in free Format. Noch eine Idee ?
%eof kann mit readc benutzt werden. ich glaube, dass es nicht mit %eof(bsname) funktioniert, aber nur %eof tun's!
der codeschnipsel lässt befürchten, dass du zuviel funktionalität in die schleife gepackt hast. es wundert mich nicht, wenn das programm nicht so, wie gewünscht funktioniert (sorry, aber *in03 in der schleife lässt mich schlimmes ahnen!).
mein ansatz:
wenn subfile gefüllt (sfldsp = *on)!!!
machwas = *ON
dow machwas
readc subformat
if %eof
leave
endif
jetzt kannst du gefahrlos alles machen
enddo
die funktionen %eof, %error, %found, ... liefern (wenn nicht spezifiziert) den Wert der letzten %eof-fähigen, usw. operation! das wird wohl iregendwo im DATVER passieren.
%error in deiner ergänzung fängt nur den fehler leere subdatei ab und hat nur deshalb mit readc etwas zu tun.
Bogomil
-
Wenn du auf eine leere Subfile einen READC löst, wird NIE %eof ausgelöst sondern immer %error, das gilt auch beim konventionellen READC mit Bezugszahlen. Hier ist es sogar so, dass eine RPG-Fehlermeldung ausgegeben wird, wenn die 2. Bezugszahl beim READC nicht angegeben ist.
Besser ist es aber tatsächlich immer, sich zu merken ob die Subfile Daten enthält. Mögliche Fehler sollte man VORHER abfragen und nicht erst eintreten lassen.
Ich könnte ja schließlich auch eine Null-Division mit Monitor abfangen anstatt vorher den Divisor abzufragen.
-
Chain
Es gibt übrigens auch einen Abbruch (schon in RPGIII!) wenn man mit einem CHAIN versucht den 1. Satz aus einer leeren Subfile einzulesen.
Similar Threads
-
By Anette in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 24-07-06, 20:52
-
By borwegen in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 30-06-06, 09:04
-
By steven_r in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 30-05-06, 08:40
-
By steven_r in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 22-05-06, 13:56
-
By Toschie in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 08-06-05, 14:21
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