IDENTIFICATION DIVISION. PROGRAM-ID. P96N70B. *--------------------------------------------------------------* * function name.........: U44RALF / P96N70B * author................: Ralf Seidler, cps4it * date of implementation: 26.09.2007 * if-name...............: none * op-name...............: none * * description...........: Dies ist ein Testprogramm fuer alles * Moegliche und Unmoegliche. * * changes...............: tt.mm.jjjj name * - text * *--------------------------------------------------------------* *- -* ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. * *--------------------------------------------------------------* *- 1. Anfang Felddefinitionen -* *- -* 01 DATEN. 05 I-BIN PIC S9(08) BINARY SYNC. 05 I-DEC PIC S9(08) PACKED-DECIMAL. 05 I-DIS PIC S9(08). *- -* 05 I-BIN-MAX PIC S9(08) BINARY SYNC. 05 I-DEC-MAX PIC S9(08) PACKED-DECIMAL. 05 I-DIS-MAX PIC S9(08). *- -* 05 INHALT PIC X(02). *- -* 05 ZEILE PIC X(80). 05 FILLER REDEFINES ZEILE. 10 WERT-1 PIC X(08). 88 LOOP-BINARY VALUE 'BIN'. 88 LOOP-DECIMAL VALUE 'DEC'. 88 LOOP-DISPLAY VALUE 'DIS'. 88 LOOP-BINARY-TIMES VALUE 'BINTIMES'. 88 LOOP-INDEX VALUE 'IDX'. 88 LOOP-INDEX-TIMES VALUE 'IDXTIMES'. 10 FILLER PIC X(02). 10 WERT-2 PIC 9(08). 10 FILLER PIC X(02). 10 FILLER PIC X(60). 01 Tabelle. 05 Tab-Zeile occurs 100000000 Indexed by I-Idx. 10 Tab-Inhalt Pic X(01). *- -* * 1. Ende Felddefinitionen * *--------------------------------------------------------------* *- -* LINKAGE SECTION. *- -* *--------------------------------------------------------------* *- -* PROCEDURE DIVISION. *- -* SCHEIN SECTION. *- -* PERFORM A00-INIT PERFORM V00-VERARBEITUNG PERFORM Z99-ENDE *- -* CONTINUE. GOBACK. *--------------------------------------------------------------* * Initialisierung von wichtigen Feldern * *- -* A00-INIT SECTION. INITIALIZE DATEN. ACCEPT ZEILE DISPLAY 'P96N70B - Beginn' DISPLAY 'Verarbeitung mit ' WERT-1 '-Feldern' DISPLAY 'Anzahl Schleife :' WERT-2 CONTINUE. *- -* *--------------------------------------------------------------* * Lesen per SELECT; Parameter sind alle fix * *- -* V00-VERARBEITUNG SECTION. EVALUATE TRUE WHEN LOOP-BINARY PERFORM V01-LOOP-BIN WHEN LOOP-DECIMAL PERFORM V02-LOOP-DEC WHEN LOOP-DISPLAY PERFORM V03-LOOP-DIS WHEN LOOP-BINARY-TIMES PERFORM V04-LOOP-BIN-TIMES WHEN LOOP-INDEX PERFORM V05-LOOP-Index WHEN LOOP-INDEX-TIMES PERFORM V06-LOOP-Index-times WHEN OTHER PERFORM V99-LOOP-ERROR END-EVALUATE CONTINUE. *- -* *--------------------------------------------------------------* * Loop mit bin Feldern * *- -* V01-LOOP-BIN SECTION. *- -* MOVE WERT-2 TO I-BIN-MAX PERFORM VARYING I-BIN FROM 1 BY 1 UNTIL I-BIN > I-BIN-MAX MOVE 'XX' TO INHALT MOVE 'X' TO Tab-Inhalt (I-Bin) END-PERFORM CONTINUE. *- -* *--------------------------------------------------------------* * Loop mit dec Feldern * *- -* V02-LOOP-DEC SECTION. *- -* MOVE WERT-2 TO I-DEC-MAX PERFORM VARYING I-DEC FROM 1 BY 1 UNTIL I-DEC > I-DEC-MAX MOVE 'XX' TO INHALT MOVE 'X' TO Tab-Inhalt (I-Dec) END-PERFORM CONTINUE. *- -* *--------------------------------------------------------------* * Loop mit dis Feldern * *- -* V03-LOOP-DIS SECTION. *- -* MOVE WERT-2 TO I-DIS-MAX PERFORM VARYING I-DIS FROM 1 BY 1 UNTIL I-DIS > I-DIS-MAX MOVE 'XX' TO INHALT MOVE 'X' TO Tab-Inhalt (I-Dis) END-PERFORM CONTINUE. *- -* *--------------------------------------------------------------* * Loop mit bin Feldern * *- -* V04-LOOP-BIN-TIMES SECTION. *- -* MOVE WERT-2 TO I-BIN-MAX MOVE 1 TO I-BIN PERFORM I-BIN-MAX TIMES MOVE 'XX' TO INHALT MOVE 'X' TO Tab-Inhalt (I-Bin) ADD 1 TO I-BIN END-PERFORM CONTINUE. *- -* *--------------------------------------------------------------* * Loop mit Index -* *- -* V05-LOOP-Index SECTION. *- -* MOVE WERT-2 TO I-BIN-MAX PERFORM VARYING I-Idx FROM 1 BY 1 UNTIL I-Idx > I-Bin-MAX MOVE 'XX' TO INHALT MOVE 'X' TO Tab-Inhalt (I-Idx) END-PERFORM CONTINUE. *- -* *--------------------------------------------------------------* * Loop mit Index - x times -* *- -* V06-LOOP-Index-times SECTION. *- -* MOVE WERT-2 TO I-BIN-MAX Set I-Idx TO 1 PERFORM I-BIN-MAX TIMES MOVE 'XX' TO INHALT MOVE 'X' TO Tab-Inhalt (I-Idx) Set I-Idx up by 1 END-PERFORM CONTINUE. *- -* *--------------------------------------------------------------* * Eingabe ist zu korrigieren * *- -* V99-LOOP-ERROR SECTION. *- -* DISPLAY 'Keine Verarbeitung moeglich, Eingabe korrigieren' CONTINUE. *- -* *--------------------------------------------------------------* * Schlussverarbeitung * *- -* Z99-ENDE SECTION. *- -* DISPLAY 'P96N70B - Ende ' CONTINUE. *- -* *--------------------------------------------------------------*