Ich würde den ganzen Abfrage-Block ab 679 wie folgt ändern:
Code
679 iflen(d$(a,1))<>10then670 680 ifval(mid$(d$(a,1),4,2))>12then670 681 ifval(mid$(d$(a,1),4,2))<1then670 682 ifval(left$(d$(a,1),2))<1then670 683 ifval(left$(d$(a,1),2))>31then670 684 ifmid$(d$(a,1),3,1)<>"."ormid$(d$(a,1),6,1)<>"."then670
- Kein Test auf "Eingabe leer?" sondern auf "Eingabe exakt 10 Zeichen?" Das Programm besteht ja auf dem Datumsformat TT.MM.JJJJ, also fangen wir so bereits weitere Fehleingaben ab
- zusätzliche Überprüfung ob der eingegebene Monat kleiner 1 ist, das hatte der Autor vergessen
- an zwei Stellen war versehentlich nur eine Ziffer (",1)") statt zweier (",2)") überprüft worden
- keine Einschränkung bei den möglichen Jahren mehr
- Wir vergleichen jetzt Zahlen miteinander ("val(..) < 12") statt Strings. Weiß jetzt nicht auswendig, ob Letzteres nicht auch in allen Fällen funktioniert hätte, aber so ist es wesentlich "eleganter".
Ich hänge mal ein PRG an.