Avatar billede Slettet bruger
19. juni 2002 - 12:09 Der er 7 kommentarer og
1 løsning

Fejlen i denne er.... (noget med Cint og split)

Dim strAryWords
Dim strValue

strValue = Request.Querystring("produkt_id")
strAryWords = Split(strValue, "+")
' - strAryWords is now an array
Dim i
For i = 0 to Ubound(strAryWords)

strAryWords(i) = Cint(strAryWords(i))

Response.Write i & " = " & strAryWords(i) & "<BR>"
Next

Hvis jeg kalder denne med test.asp?produkt_id=5+19+2+43+65

Skriver den blot fejlen

Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D)
Typer stemmer ikke overens: 'Cint'
/eshop/test.asp, line 20

Linie 20 er den linie med
strAryWords(i) = Cint(strAryWords(i))
Avatar billede askhoej Praktikant
19. juni 2002 - 12:13 #1
Tror du bliver nød til at oprette et nyt array, da man ikke både kan have Strenge og heltal i det samme array.
Avatar billede Slettet bruger
19. juni 2002 - 12:16 #2
Og det betyder?
Avatar billede askhoej Praktikant
19. juni 2002 - 12:19 #3
Her splitter du din streng op i en masse små strenge og smider dem ind i et array:

strAryWords = Split(strValue, "+")

Her vil du gerne smide heltal ind i det array som indeholder dine mange små strenge og det må man ikke.

strAryWords(i) = Cint(strAryWords(i))
Avatar billede askhoej Praktikant
19. juni 2002 - 12:23 #4
Hmm...jeg tog vist fejl, i VBScript kan man godt blande appelsiner og elefanter....

Prøv dette:

<%
strAryWords = Split("5+19+2+43+65", "+")

Dim i
Dim test
For i = 0 to Ubound(strAryWords)

test = strAryWords(i)
strAryWords(i) = Cint(test)

Response.Write i & " = " & strAryWords(i) & "<BR>"
Next
%>
Avatar billede Slettet bruger
19. juni 2002 - 12:34 #5
Problemet opstår altså først når jeg skal bruge en querystring. Med almindelige konstanter går det fint.


Hvis man bytter strValue = Request.Querystring("produkt_id") ud med strValue = "44+22+576+1" virker det fint.

Så løsningen er ikke sådan lige at få øje på.
Avatar billede invisibleman Nybegynder
19. juni 2002 - 12:50 #6
el_barto: Har du prøvet at udskrive den værdi array elementet indeholder, INDEN CInt() ? ... Evt. prøv: CInt("0" & strAryWords(i)) ... ell. CLng()
Avatar billede Slettet bruger
19. juni 2002 - 13:08 #7
Hvis jeg bruger

strValue = Request.Querystring("produkt_id")
strAryWords = Split(strValue, "+")
' - strAryWords is now an array
Dim i
For i = 0 to Ubound(strAryWords)

Response.Write i & " = " & strAryWords(i) & "<BR>"
Next

Udskriver den 0 = 5 8 11 576

Men hvis jeg bruger

strValue = "5+8+11+576"
strAryWords = Split(strValue, "+")
' - strAryWords is now an array
Dim i
For i = 0 to Ubound(strAryWords)

Response.Write i & " = " & strAryWords(i) & "<BR>"
Next

udskriver den
0 = 5
1 = 8
2 = 11
3 = 576

Det er altså den querystring der ikke kan laves til et array. Hvorfor dog ikke?
Avatar billede Slettet bruger
19. juni 2002 - 13:11 #8
Den smed åbenbart + tegnene væk, dette her virker i herttilfælde:

strValue = Request.Querystring("produkt_id")
strAryWords = Split(strValue, " ")
' - strAryWords is now an array
Dim i
For i = 0 to Ubound(strAryWords)

Response.Write i & " = " & strAryWords(i) & "<BR>"
Next
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