Hi,
ich denke, dass es da keine Grenze bzgl. des TEST-Ausdrucks oder der CASE-Ausdrücke gibt,
sondern das die Größe der gesamten Konstruktion durch die max. Code- bzw. Programmlänge begrenzt ist.
Egal ob der Quelltext durch einen Compiler in Maschinen- oder P-Code umgewandelt, oder
durch einen Interpreter abgearbeitet wird, letztendlich läuft es intern auf eine (lange)
IF-THEN-ELSE... Kette hinaus, die bei vielen CASEs einfach langen Code erzeugt.
Wenn es (irgendwann) zu eine Fehlermeldung kommen sollte, würde ich das eher in
dieser Richtung vermuten.
Falls das in deinem Projekt so vorgegeben ist, nun gut, dann kann man da nichts machen.
Anderenfalls würde ich das folgendermaßen realisieren:
- Jedes (Teil-)Programm in eine Routine packen
- Ein Array aus Records mit Index-Nr. und String (=Routinenname) als Konstante deklarieren
und mit den Indizes und den entsprechenden Routinennamen besetzen
- Zur Laufzeit den Gruppeneingang lesen, und
- über eine Schleife das Array nach dem (Gruppen-)Index durchsuchen und im Erfolgsfall
- den Routinenname per "CallByVar" ausführen
Wenn du noch einen draufsetzen willst, kannst du auch die Array-Daten aus einer externen
Textdatei einlesen, ähnlich einer INI-Datei, und könntest damit auch (theoretisch) zur Laufzeit
das Verhalten ändern/anpassen.
Eleganter/flexibler wirds nich....
Gruß
rmac