##Es wird das "IF"-Statement benutzt, das etwas speziell gehandhabt wird. ##In CVT000 kopiere ich zunächst die komplette Perso-Struktur in den Zielpuffer um, das ist quasi mein Default und Init. CVT000= 0,213, 0,213,L ; alles kopieren ##CVT010 enthält eine "IFC"-Anweisung und ist eigentlich keine "Konverteranweisung", weil es einen Status prüft. CVT010= 35, 35, 35, 35,IFC00=B ;pruefe PERNO-Start='B' ##"Wörtlich" liest sich die Anweisung etwa so: ##Wenn an Offset 35 das Zeichen ''B' steht, setze die Bedingung-00 auf den Wert 1 oder "wahr"... ##Sonst passiert in dieser Zeile gar nichts. ##...man kann auch mehr als ein Zeichen angeben (IFC00=B1234) CVT012= 26, 33, 26, 33,IFE00=d+1J ; ENDDA +1 Jahr ##CVT012 enthält eine "IFE"-Anweisung und bezieht sich auf diese ##Bedingung-00: "wenn Bedingung-00 'wahr' ist (also PERNO mit 'B' begann), addiere 1 Jahr auf das Datumsfeld ENDDA) ##CVT012= 26, 33, 26, 33,IFE00=d+1J ; ENDDA +1 Jahr ##IFE00= ##|||||+- wenn "wahr", das Gegenteil wäre "IFE00!" ##|||++-- Bedingung 00, wurde vorher durch IFC00 gesetzt ##+++---- "execute" im Ggs. zu "IFC" = "check" #Ein Datensatz, bei dem die Bedingung 00 nicht erfüllt ist, durchläuft die CVT012 einfach ohne verändert zu werden. #Es gibt max. 99 Bedingungen (IF00 ... IF99) und alle werden mit dem nächsten neuen Datensatz wieder auf 0 initialisiert. ##Ergebnis: #Input: #PH4CLNT003000000011998081919980826 02710701Mann Thomas... #PH4CLNT003000000501998081919980826 B3310002internation... #Output: #PH4CLNT003000000011998081919980826 02710701Mann Thomas... #PH4CLNT003000000501998081919990826 B3310002internation... #Beim zweiten Satz wurde ENDDA+1Jahr gerechnet.