Stellen | Inhalt | Code für |
1-6 | alphanum. | Geb.-Dat. |
7 | - | Trennz. |
8-10 | alphanum. | 3 Buchst. v. Nachname |
11 | . | Trennz. |
12-20 | alphanum. | Pers.-Nr. |
21 | Leer | Trennz. |
: WORKING STORAGE SECTION. : 01 Personen-Nummer PIC X(21). 01 Geb-Code PIC X(8). 01 Nam-Code PIC X(3). 01 Pers-Code PIC X(9). 01 Tr1 PIC X. 01 Tr2 PIC X. 01 Tr3 PIC X. 01 Anz1 PIC 99. 01 Anz2 PIC 99. 01 Anz3 PIC 99. 01 Feldzahl PIC 9. 01 Fehler-Text PIC X(30). 01 Fehler-KZ PIC 9. 01 Warten PIC X. 01 Anmeldezahl PIC 9(5). : PROCEDURE DIVISION. : Eingabe SECTION. : Eingabe-Pruefen SECTION. MOVE 0 TO Fehler-KZ. MOVE 0 TO Feldzahl. MOVE SPACES TO Fehler-Text. UNSTRING Personen-Nummer DELIMITED BY ALL "-" OR ALL "." OR ALL " " INTO Geb-Code DELIMITER IN Tr1 COUNT IN Anz1 Nam-Code DELIMITER IN Tr2 COUNT IN Anz2 Pers-Code DELIMITER IN Tr3 COUNT IN Anz3 TALLYING IN Feldzahl ON OVERFLOW MOVE 1 TO Fehler-KZ MOVE "Angebene Nummer ist zu lang!" TO Fehler-Text END-UNSTRING IF Fehler-KZ = 0 IF Tr1 NOT = "-" OR Tr2 NOT = "." MOVE 1 TO Fehler-KZ MOVE "Trennzeichenfehler." TO Fehler-Text END IF IF Anz1 NOT = 8 MOVE 1 TO Fehler-KZ MOVE "Nummernanfang falsch angeben." TO Fehler-Text END IF IF Anz2 NOT = 3 MOVE 1 TO Fehler-KZ MOVE "Nummernmitte falsch angeben." TO Fehler-Text END IF IF Anz3 NOT = 9 MOVE 1 TO Fehler-KZ MOVE "Nummernende falsch angeben." TO Fehler-Text END IF IF Feldzahl NOT = 3 MOVE 1 TO Fehler-KZ MOVE "Nummernformat falsch." TO Fehler-Text END IF END IF IF Fehler-KZ = 1 DISPLAY Fehler-Text AT 0302. ACCEPT Warten AT 0332. GOTO Eingabe. ELSE ADD 1 TO Anmeldezahl GOTO Bin-Drin END IF : Bin-Drin SECTION. : |