Avatar billede d4s Novice
31. august 2003 - 08:34 Der er 12 kommentarer og
1 løsning

case med flere værdier

Hvordan laver man følgende i ASP:

SELECT CASE (i)
      CASE ('a' to 'z')
        PRINT "lille bogstav"
      CASE ('A' to 'Z')
        PRINT "stort bogstav"
      CASE ('1' to '9')
        PRINT "tal"
      CASE DEFAULT
        PRINT "ukendt tegn"
    END SELECT

Jeg er nået frem til følgende:

    select case tegn
      case ("a" to "z")
        response.write "lille bogstav"
      case "A":"Z"
        response.write "stort bogstav"
      case "0".."9"
        response.write "tal"
      case else
        response.write "ukendt tegn"
    end select

Men ingen af de 3 forsøg virker.

I dokumentationen af VBscript står:

Select Case testexpression
  [Case expressionlist-n
      [statements-n]] . . .
  [Case Else expressionlist-n
      [elsestatements-n]]
End Select

Men ikke hvordan man skriver flere expressions ;O)

D4
Avatar billede erikjacobsen Ekspert
31. august 2003 - 08:49 #1
Du har ikke prøvet komma ?
Avatar billede erikjacobsen Ekspert
31. august 2003 - 08:53 #2
Eksempel:

dim i
i="b"
SELECT CASE i
      CASE "a","b","c","d"
        response.write "lille bogstav"
      CASE "A","B","C","D"
        response.write "stort bogstav"
      CASE "0","1","2","3","4","5","6","7","8","9"
        response.write "tal"
      CASE DEFAULT
        response.write "ukendt tegn"
    END SELECT
Avatar billede d4s Novice
31. august 2003 - 08:55 #3
jo, jeg har prøvet komma og det virker, men i stedet for

case "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"

vil jeg gerne bruge intervaltest, ligesom

if i>="a" and i<="z" then
  response.write "lille bogstav"
end if

Kommaerne kræver at jeg skriver alle muligheder og interval test er mere læseligt ;O)

D4
Avatar billede d4s Novice
31. august 2003 - 09:05 #4
Denne linie giver ingen fejl, men virker heller ikke:
case tegn > "a" And tegn < "z"    ' tegn er mellem a og z (Ikke inkl.)
  response.write "lille bogstav"
Avatar billede erikjacobsen Ekspert
31. august 2003 - 09:05 #5
Ja, selvfølgelig, men ikke med det programmeringssprog ;)

Overvej at lave en "abcd.....xyzæøå" streng og bruge funktionen instr
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsfctinstr.asp
Avatar billede d4s Novice
31. august 2003 - 09:09 #6
Den tanke har jeg også haft, men ville lige høre om case metoden virkede.
Jeg godtager dit svar, hvis du gider skrive et :O)
D4
Avatar billede nielle Nybegynder
31. august 2003 - 09:49 #7
Hedder CASE DEFAULT ikke CASE ELSE i ASP?
Avatar billede erikjacobsen Ekspert
31. august 2003 - 11:22 #8
Jo, naturligvis. Default er blevet opfattet som en (uinitialiseret) variabel
Avatar billede socle Nybegynder
31. august 2003 - 17:40 #9
hvad med at bruge regexp?
Avatar billede socle Nybegynder
31. august 2003 - 23:26 #10
en alternativ løsning:

val = request.querystring("tegn")
if isnumeric(val) then
    response.write("tal")
elseif 96 < Asc(val) AND Asc(val) < 123 then
    response.write("lille bogstav: " & Asc(val))
elseif 64 < Asc(val) AND Asc(val) < 91 then
    response.write("stort bogstav")
else
    response.write("værdien ubestemt")
end if
Avatar billede d4s Novice
03. september 2003 - 11:37 #11
elseif er en god ide. Den kendte jeg ikke. Men igen kan jeg ikke lukke tråden, eftersom ingen skriver et svar. Der er kun kommentarer :O(

D4
Avatar billede socle Nybegynder
06. september 2003 - 22:26 #12
jamen så skriver jeg lige et svar. Hvis du syns elseif løsningen er til det

:)
Avatar billede d4s Novice
24. september 2003 - 01:28 #13
glemte at acceptere svaret. Undskyld at det tog så lang tid :O)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester