| 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.
: |
...