/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Concatenering af variabler
Fra : Kasper Katzmann


Dato : 07-03-07 11:45

Jeg håber der er nogen der kan greje den her...

Kan man det her? Og i så fald hvordan skal man gøre uden at få en fejl? Det
lader til at det er selve concateneringen der fejler.

<%

'r51 er et tal mellem 1 og 5 eller tom
'I det her tilfælde er r51 = 3
r51 = Request.Form("r51")

prio1 = "n/a"
prio2 = "n/a"
prio3 = "n/a"
prio4 = "n/a"
prio5 = "n/a"

for i = 1 to 5
if cInt(r51) = i then
prio+i = "R51"
end if
next

Response.Write prio1 & "<br>"
Response.Write prio2 & "<br>"
Response.Write prio3 & "<br>"
Response.Write prio4 & "<br>"
Response.Write prio5 & "<br>"

%>

Efter min bedste overbevisning burde det give:
n/a
n/a
R51
n/a
n/a

Men jeg får følgende fejl:
----------
Microsoft VBScript runtime error '800a000d'

Type mismatch

/test/wish.asp, line 25
----------

Linie 25 er:
prio+i = "R51"


--
/Kasper Katzmann

Det er kun i Jeopardy at svaret kommer før spørgsmålet.


 
 
Jens Gyldenkærne Cla~ (07-03-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 07-03-07 12:32

Kasper Katzmann skrev:

> for i = 1 to 5
> if cInt(r51) = i then
> prio+i = "R51"


Linjen herover giver ikke mening. Du vil formentlig have noget i
retning af eval(prio + i) = ... (som man vist nok kan i
Javascript), men i asp kan man ikke sammenflikke variable på den
måde (det er vist i øvrigt heller ikke god stil at gøre det i
javascript).


Hvorfor bruger du ikke bare et array?

Dim prio(4)
Dim i
For i=0 To 4
If cInt(r51) = i+1 Then
prio(i) = "R51"
Else
prio(i) = "n/a"
End If
Next
--
Bolig søges. Andel eller leje i Emdrup, Nordvest, Nørrebro, Søborg
eller Brønshøj, max 6000 pr. måned.
Kontakt pr. mail - nospam(at)gyros.dk
Jens Gyldenkærne Clausen

Jørn Andersen (07-03-2007)
Kommentar
Fra : Jørn Andersen


Dato : 07-03-07 23:14

On Wed, 07 Mar 2007 12:31:43 +0100, Jens Gyldenkærne Clausen
<jens@gyros.invalid> wrote:

>Kasper Katzmann skrev:
>
>> for i = 1 to 5
>> if cInt(r51) = i then
>> prio+i = "R51"
>
>
>Linjen herover giver ikke mening. Du vil formentlig have noget i
>retning af eval(prio + i) = ... (som man vist nok kan i
>Javascript), men i asp kan man ikke sammenflikke variable på den
>måde (det er vist i øvrigt heller ikke god stil at gøre det i
>javascript).

Man kan med Execute.

>Hvorfor bruger du ikke bare et array?

Det er sikkert mindre ressourcekrævende.


Mvh. Jørn

--
Jørn Andersen, Brønshøj
ALLE danske tropper HJEM fra Irak, NU
Skriv under: www.kirkmand-initiativet.dk
Demonstrér 17. marts: www.nejtilkrig.dk

Jørn Andersen (07-03-2007)
Kommentar
Fra : Jørn Andersen


Dato : 07-03-07 23:10

On Wed, 7 Mar 2007 11:45:12 +0100, "Kasper Katzmann"
<nogen@microsoft.com> wrote:

>Kan man det her? Og i så fald hvordan skal man gøre uden at få en fejl? Det
>lader til at det er selve concateneringen der fejler.
>
><%
>
>'r51 er et tal mellem 1 og 5 eller tom
>'I det her tilfælde er r51 = 3
>r51 = Request.Form("r51")
>
>prio1 = "n/a"
>prio2 = "n/a"
>prio3 = "n/a"
>prio4 = "n/a"
>prio5 = "n/a"
>
>for i = 1 to 5
> if cInt(r51) = i then
> prio+i = "R51"
> end if
>next

   If cInt(r51) = i then
      strAssign = "prio" & i & " = ""R51"""
Execute(strAssign)
      ' Eller bare:
      ' Execute("prio" & i & " = ""R51""")
   End if


>Efter min bedste overbevisning burde det give:
>n/a
>n/a
>R51
>n/a
>n/a

Jeps.


Good luck,
Jørn

--
Jørn Andersen, Brønshøj
ALLE danske tropper HJEM fra Irak, NU
Skriv under: www.kirkmand-initiativet.dk
Demonstrér 17. marts: www.nejtilkrig.dk

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408186
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste