Avatar billede ducks Nybegynder
06. januar 2004 - 11:33 Der er 8 kommentarer og
1 løsning

Right() får fejlen 0x800A0005

Hvorfor får jeg fejlen

Error Type:
Microsoft VBScript runtime (0x800A0005)
Invalid procedure call or argument: 'Right'
/include/functions.asp, line 10

Når jeg prøver at udføre den her function:

Function UCaseFirst(word)

  firstOne        = UCase(Left(word,1))
  All            = firstOne & LCase(Right((word), Len(word)-1)) //Linie 10

  UCaseFirst        = All

End Function

Jeg har kigget lidt på www.microsoft.com men kunne ikke rigtig finde svaret.
Den er taget ud fra den her (som virker):
<%=UCase(Left(Request.QueryString("type"),1)) & LCase(Right((Request.QueryString("type")), Len(Request.QueryString("type"))-1))%>
Avatar billede medions Nybegynder
06. januar 2004 - 11:37 #1
Prøv sådan her:

All            = firstOne & LCase(Right(word, Len(word)-1))

//>Rune
Avatar billede medions Nybegynder
06. januar 2004 - 11:37 #2
Og sikre dig at variablen word ikke er tom!

//>rune
Avatar billede ducks Nybegynder
06. januar 2004 - 11:44 #3
Det er fordi den bliver tom...

Function showDate()
  theDay = Weekday(Now,vbMonday)
  Select Case theDay
    {...}
    Case 02
      theDay = "Tirsdag"
    {...}
  End Select

  showDate = UCaseFirst(theDay)
End Function

Response.Write(showDate())

Hvordan undgår jeg den laver den fejl, når jeg kalder en function i en anden function, går ud fra at jeg skal have sat theDay til at være en global variabel?
Avatar billede medions Nybegynder
06. januar 2004 - 11:48 #4
Du må jo så bare sige

If Not Len(word) = 0 Then
  All = firstOne & LCase(Right(word, Len(word)-1))
End If

//>Rune
Avatar billede ducks Nybegynder
06. januar 2004 - 11:51 #5
Ikke hvis jeg skal bruge en variable udenfor functionen, så er jeg da nødt til at lave den global?
Avatar billede medions Nybegynder
06. januar 2004 - 11:53 #6
Jeg forstår ik' hvad du mener!?

//>Rune
Avatar billede ducks Nybegynder
06. januar 2004 - 11:57 #7
I den ene function (som står øverst) laver jeg det forreste bogstav stort og resten småt, men den function vil jeg gerne bruge i den anden function. Så jeg kommer til at kalde en function fra en anden function, som skal sende en variabel med til første function.

Function 1(variabel)
  1 = variabel & " med dig"
End Function

Function 2()
  strHej = "hej"
  response.write 1(strHej)
End Function

Så skal strHej vel være global for at kunne anvendes i Function 1?
Avatar billede erikjacobsen Ekspert
06. januar 2004 - 12:06 #8
Ser ud til virke:

Function UCaseFirst(word)

  firstOne        = UCase(Left(word,1))
  if len(word)>0 then
  rest =  LCase(Right(word, Len(word)-1))
  else
  rest = ""
  end if
  All            = firstOne & rest

  UCaseFirst        = All

End Function

response.write UCaseFirst("hejsa") & "<br>"
response.write UCaseFirst("hejs") & "<br>"
response.write UCaseFirst("hej") & "<br>"
response.write UCaseFirst("he") & "<br>"
response.write UCaseFirst("h") & "<br>"
response.write UCaseFirst("") & "<br>"
response.write UCaseFirst(null) & "<br>"
Avatar billede ducks Nybegynder
06. januar 2004 - 12:25 #9
Fejlen lå selvf. et helt andet sted i scriptet end jeg havde regnet med :(

Men fik da fjernet de ( ) der var for meget :)
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
Kategori
Kurser inden for grundlæggende programmering

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