Daniel Schwarz: Mehrere ORs zusammenfassen.

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

  1. 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

    --
    Besucht den Adventskalender!
    http://selfcommunity.teamone.de/advent/2003/
    1. Hi, Bio,

      if (a
          OR b
          OR c) then
      endif

      wuerde 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

      1. 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

        --
        Besucht den Adventskalender!
        http://selfcommunity.teamone.de/advent/2003/
        1. 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?

          1. 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

    2. Ü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.

      1. 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

        1. 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.

          1. 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