Mehrere ORs zusammenfassen.
Daniel Schwarz
- asp.net
Moin moin,
Ich habe eine Anweisung, die wiefolgt lautet:
if page = "" OR page = "edit" OR page = "manage" OR page = "done" OR page = "pend" OR page = "over" OR page = "role" OR page = "rpt" OR page = "hist" OR page = "metr" OR page = "zeugnis" then
...
Anweisungen
...
end if
Das funktioniert auch alles wunderbar, nur geht aufgrund der vielen ORs die Übersichtlichkeit ein wenig flöten. Viel eleganter wäre es, wenn ASP in Equivalent zu der IN Anweisung in SQL.
Ich stelle mit etwas ähnliches wie dies vor:
if page IN("", "edit", "manage", "done", .... , "metr", "zeugnis") then
....
Anweisungen
....
end if
Die Suche im Web gestalltet sich jedoch ein wenig schwierig, da die Suchmaschinen, entweder den begriffe "or" gar nicht zu lassen, weil zu häufig vorkommend oder das "or" als logische Verknüpfung für die Suchmaschine betrachten. Daher meine Anfrage hier.
Weiß also zufällig jemand, ob die ASP Syntax soetwas hergibt?
Gruß
Daniel
Sup!
if (a
OR b
OR c) then
endif
wuerde ja vielleicht schon etwas helfen oder switch/case.
Und Im Notfall programmierst Du halt ein multi-or selbst, das einen Array mit Strings und einen Vergleichsstring bekommt.
Gruesse,
Bio
Hi, Bio,
if (a
OR b
OR c) then
endifwuerde ja vielleicht schon etwas helfen oder switch/case.
Dein regelmaessiger kompetenter Rat bei Fragen zu ASP faellt ja auf. Anderseits bist Du (zumindest in der Fusszeilenimplementation Deines Ichs) ja ein bekannter Gegner von ASP und wuerdest sogar gerne die Klassifizierung "ASP" aus dem Forum verbannen.
Frage: Was hast Du gegen das gute alte proprietaere ASP?
Gruss,
Lude
Sup!
Dein regelmaessiger kompetenter Rat bei Fragen zu ASP faellt ja auf.
Hmpf. Mein Ironie-Detektor will nicht richtig anspringen...
Anderseits bist Du (zumindest in der Fusszeilenimplementation Deines Ichs) ja ein bekannter Gegner von ASP und wuerdest sogar gerne die Klassifizierung "ASP" aus dem Forum verbannen.
Ja! ASP ist BÖSE!
Frage: Was hast Du gegen das gute alte proprietaere ASP?
Na, zufällig kann ich etwas BASIC, darum natürlich auch ein wenig ASP mit VB als Skriptsprache.
Gegen ASP habe ich, dass es proprietär und von Microsoft ist, beim Teutates, das liegt doch auf der Hand!
Gruesse,
Bio
Hi,
Gegen ASP habe ich, dass es proprietär und von Microsoft ist, beim Teutates, das liegt doch auf der Hand!
propriaetere Dateiformate sind m.E. durchaus ernstzunehmende Gegner, aber eine Programmiersprache darf doch proprietaer sein, oder auch nicht?
Gruss,
Lude
PS: Oder ist alles boese, was proprietaer ist?
Hi Lude,
propriaetere Dateiformate sind m.E. durchaus ernstzunehmende Gegner, aber eine Programmiersprache darf doch proprietaer sein, oder auch nicht?
Ha! Bio habe ich schon überzeugt, jetzt bist du dran: ASP ist keine Programmiersprache, sondern meinetwegen eine Scriptumgebung. Die Programmiersprache kannst du zwischen VBScript und JavaScript wählen. Bei ASP.NET sind's noch mehr :-)
Gruß,
Martin
Über solche und ähnliche Workarounds hatte ich mir auch schon Gedanken gemacht, aber am liebsten wäre es mir, wenn schon etwas systeminternes bei ASP geben würde.
Hi,
Über solche und ähnliche Workarounds hatte ich mir auch schon Gedanken gemacht, aber am liebsten wäre es mir, wenn schon etwas systeminternes bei ASP geben würde.
Verwende doch eine Schleife, bei ASP heisst das Select:
SELECT CASE (Ausdruck)
CASE Anweisung1
CASE Anweisung2
CASE Anweisung3
CASE ELSE Anweisung4
END SELECT
Enspricht einer if() elseif() else Schleife, ist aber IMHO übersichtlicher angeordnet und somit besser zu lesen.
Gruss AndreD
Verwende doch eine Schleife, bei ASP heisst das Select:
SELECT CASE (Ausdruck)
CASE Anweisung1
CASE Anweisung2
CASE Anweisung3
CASE ELSE Anweisung4
END SELECT
Von der Übersichtlichkeit her gebe ich Dir recht, doch geht das leider etwas an meinem Problem vorbei. Denn sind immer wieder dieselben Anweisungen, die ausgeführt werden sollen. Im Falle einer Select-Anweisung hieße das, daß ich die Anweisungen immer und immer wiederholen müßte. Und in meinem Falle sind daß mehrer Zeilen Code, die die Select Anweisung doch sehr in die länge ziehen würde.
Ich habe halt zig Bedingungen, die, sofern erfüllt, ein und dieselbe Abfolge von Anweisungen ablaufen lassen sollen.
Nicht schön, aber selten... Meine Lösung sieht nun wie folgt aus:
Function Multi_OR(arg_string,arg_array)
Multi_OR = false
for i = 0 to Ubound(arg_array)
if arg_string = arg_array(i) then
Multi_OR = true
end if
next
End Function
========================================================
s_array = Array("", "edit", "manage", "done", "pend", "over", "role", "rpt", "hist", "metr", "zeugnis")
if Multi_OR(page,s_array) then
Response.write("Yupp")
end if