Hi!
wollte mal fragen, wie man sich verhält, wenn man einen Wert
prüfen will ob er 1, 2, 3 usw bis 1000 ist und demnach eine
Codeverzweigung durchführen möchte.
Ist da Case Select noch eine Alternative, wenn man 999 x den
Wert abfragen muß, ob dies oder dies zutrifft (kostet ja ne
Menge Zeilen in VB)
Welche anderen Möglichkeiten gibt es, das ganze geschickt zu
umgehen.
Verstehe ich das richtig:
In Abhängigkeit eines Wertes mit einem Wertebereich von 1 bis 1000 werden ebenso viele unterschiedliche Verzweigungen (also 1000) ermöglicht?
Ich habe das zwar noch nie mit so vielen Fällen programmiert, aber ich würde den ganzen Case-Konstrukt in Untereinheiten auflösen, allein schon wegen der Übersichtlichkeit:
Der erste Select-Case zerlegt die Variable in 100er-Schritten mittels „Case 1 To 100“, „Case 101 To 200“ usw. In den einzelnen Case-Blöcken wird eine entsprechende SUB aufgerufen. In der SUB wird wieder ein Select-Case-Konstrukt aufgebaut, wo der Wert in Zehnerstufen zerlegt wird. Jedes 10er-Case ruft eine weitere SUB auf, wo jetzt mit Abfrage auf 10 mögliche Werte die eigentliche Verzweigung erfolgt.
Also:
Select Case Wert
Case 1 To 100
SucheEbene0 Wert
Case 101 To 200
SucheEbene1 Wert
Case 201 To 300
SucheEbene2 Wert
[…]
Case 901 To 1000
SucheEbene9 Wert
End Select
Nun in die jeweilige SUB:
SUB SucheEbene0 (Wert)
Select Case Wert
Case 1 To 10
SucheEbene01 Wert
Case 11 To 20
SucheEbene02 Wert
Case 21 To 30
SucheEbene03 Wert
[…]
Case 91 To 100
SucheEbene09 Wert
End Select
END SUB
Jetzt die letzte SUB:
SUB SucheEbene01 (Wert)
Select Case Wert
Case 1
Verzweigung001
Case 2
Verzweigung002
Case 3
Verzweigung003
[…]
Case 10
Verzweigung010
End Select
END SUB
Die Folge dieser Zerlegung: Statt einmal 1000 Elemente zu durchsuchen, werden drei Mal je 10 Elemente durchsucht. Sollte eigentlich ziemlich fix gehen.
Grüße
Heinrich