/ 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
Type mismatch i array
Fra : Kurt G


Dato : 22-06-09 12:51

Jeg får følgende fejl

Type mismatch: 'MenuArray(...)'
/Kladde/funktioner.asp, line 267
Koden ser låledes ud:

265 For y = 0 to AntalMenuer-1
266 If (MenuArray(y,0)= 0) Then
267 If (MenuArray(y+1,0)= 0) Then 'Felt0=0 efterfølges af Felt0=0
268 Response.write "<li><a href='/" & MenuArray(y,1)& "'>" &
MenuArray(y,2) & "</a></li>"
269 End If
270 End If
272 Next
Jeg har også prøvet med
267 If (MenuArray((y+1),0)= 0) Then 'Felt0=0 efterfølges af Felt0=0
samt
267 z = y+1
268 If (MenuArray(z,0 = 0) Then 'Felt0=0 efterfølges af Felt0=0
men det har ikke hjulpet.

Hvad har jeg gjort galt i linie 267 og hvorfor er der fejl i linie 267 når
linie 266 er ok?

Mvh Kurt



 
 
Rune Jensen (22-06-2009)
Kommentar
Fra : Rune Jensen


Dato : 22-06-09 14:19

Kurt G skrev:
> Jeg får følgende fejl
>
> Type mismatch: 'MenuArray(...)'
> /Kladde/funktioner.asp, line 267
> Koden ser låledes ud:
>
> 265 For y = 0 to AntalMenuer-1
> 266 If (MenuArray(y,0)= 0) Then
> 267 If (MenuArray(y+1,0)= 0) Then 'Felt0=0 efterfølges af Felt0=0
> 268 Response.write "<li><a href='/" & MenuArray(y,1)& "'>" &
> MenuArray(y,2) & "</a></li>"
> 269 End If
> 270 End If
> 272 Next

OK

> Jeg har også prøvet med
> 267 If (MenuArray((y+1),0)= 0) Then 'Felt0=0 efterfølges af Felt0=0

( og ) paranteser omkring et udtryk betyder, at alt indenfor disse skal
beregnes først.

Den første og sidste parantes er derfor ikke nødvendig, for det er det
samlede udtryk.

If MenuArray((y+1),0)= 0 Then

Og egentlig bør man kunne simplificere det yderligere, fordi y+1 står
for sig selv som et eget udtryk (igen), og vil kun kunne beregnes først
under alle omstændigheder.

If MenuArray(y+1,0)= 0 Then

Her er så et andet problem. Fordi arrays så vidt jeg ved ikke må være
todimensionale. Så MenuArray skal være en function, ikke et array, hvis
det skal give mening. Med andre ord, så mangler der nok lidt kode, for
det giver mening. Og hvis det er ment som et array, er det nok dér
problemet er. ...men du har ret, så skulle den også brokke sig i linje 266.

Eneste forskel på de to linjer, er y er en større i linje 267.


> samt
> 267 z = y+1
> 268 If (MenuArray(z,0 = 0) Then 'Felt0=0 efterfølges af Felt0=0
> men det har ikke hjulpet.

Den er også forkert af flere grunde, men bl.a. er der ikke lige mange
afsluttende paranteser, som begyndende. To (( men kun én )

Derudover, så blandes if-delens elementer med selve arrayets. Ved ikke
rigtigt, men ret sikker på det vil give fejl. Skulle måske have været

If MenuArray(z,0) = 0 Then

...under forudsætning af, MenuArray er en function.

> Hvad har jeg gjort galt i linie 267 og hvorfor er der fejl i linie 267 når
> linie 266 er ok?

Jeg tror det ville være interessant, hvordan MenuArray defineres.. Altså
den kode, som gør det.

;)


MVH
Rune Jensen

--
Nysgerrig efter at møde andre deltagere i webdesign nyhedsgrupperne?
http://webdesigngruppen.dk/

Rune Jensen (22-06-2009)
Kommentar
Fra : Rune Jensen


Dato : 22-06-09 14:27

Rune Jensen skrev:

> Her er så et andet problem. Fordi arrays så vidt jeg ved ikke må være
> todimensionale. Så MenuArray skal være en function, ikke et array, hvis
> det skal give mening. Med andre ord, så mangler der nok lidt kode, for
> det giver mening. Og hvis det er ment som et array, er det nok dér
> problemet er. ...men du har ret, så skulle den også brokke sig i linje 266.

Og bare for en god ordens skyld, har du så nogle on error resume next i
koden?

....lært af erfaring, det kan bringe problemer, hvis ikke brugt rigtigt.


MVH
Rune Jensen

Kurt G (22-06-2009)
Kommentar
Fra : Kurt G


Dato : 22-06-09 15:06

KLIPPET
>> Jeg har også prøvet med
>> 267 If (MenuArray((y+1),0)= 0) Then 'Felt0=0 efterfølges af Felt0=0
>
> ( og ) paranteser omkring et udtryk betyder, at alt indenfor disse skal
> beregnes først.

Ja, det ved jeg godt, det var for at være helt sikker på, at det
beregningsmæssigt var i orden.

> Den første og sidste parantes er derfor ikke nødvendig, for det er det
> samlede udtryk.
>
> If MenuArray((y+1),0)= 0 Then
>
> Og egentlig bør man kunne simplificere det yderligere, fordi y+1 står for
> sig selv som et eget udtryk (igen), og vil kun kunne beregnes først under
> alle omstændigheder.
>
> If MenuArray(y+1,0)= 0 Then

Det var der, jeg startede!

>
> Her er så et andet problem. Fordi arrays så vidt jeg ved ikke må være
> todimensionale.

Vil det sige, at jeg bør hente tallene ud af MenuArray inden
sammenligningen?

> Så MenuArray skal være en function, ikke et array, hvis det skal give
> mening. Med andre ord, så mangler der nok lidt kode, for det giver mening.
> Og hvis det er ment som et array, er det nok dér problemet er. ...men du
> har ret, så skulle den også brokke sig i linje 266.

Det gør den også nu, efter at jeg har prøvet andre ting!

Klippet>

> Jeg tror det ville være interessant, hvordan MenuArray defineres.. Altså
> den kode, som gør det.

Dim Menutabel, MenuArray(3,100), AntalMenuer

Og data fyldes i array-et således:
'--- Overfør menuen til array ---
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("menutekst.txt")
Set f = fso.OpenTextFile(filespec,1)
AntalMenuer = 0
Do While not f.AtEndOfStream 'Indlæs menufilen i MenuArray
linie = f.ReadLine
If left(linie,2) <> "//" then
Menutabel= Split(linie,";")
For x = 0 to 2
MenuArray(x,AntalMenuer)= Menutabel(x)
Next
AntalMenuer = AntalMenuer+1
End If
Loop
f.Close 'Nu er filen indlæst i MenuArray

Mvh Kurt



Stig Johansen (22-06-2009)
Kommentar
Fra : Stig Johansen


Dato : 22-06-09 15:29

Kurt G wrote:

> Dim Menutabel, MenuArray(3,100), AntalMenuer
>
[snip]
> For x = 0 to 2
> MenuArray(x,AntalMenuer)= Menutabel(x)
> Next
> AntalMenuer = AntalMenuer+1

sammenlignet med:
> 265 For y = 0 to AntalMenuer-1
> 266  If (MenuArray(y,0)= 0) Then
> 267   If (MenuArray(y+1,0)= 0) Then  'Felt0=0 efterfølges af Felt0=0

bytter du lidt om på dimensionerne.
Det skal nok være
If (MenuArray(0,y)= 0) Then

Derudover kommer du måske til at bruge 1 for meget ved y+1.
Hvis du f.eks kun har 1 i AntalMenuer, så er der kun et element(x,0) array,
og y+1, dvs. element(x,1) er udefineret.

--
Med venlig hilsen
Stig Johansen

Kurt G (22-06-2009)
Kommentar
Fra : Kurt G


Dato : 22-06-09 16:45

"Stig Johansen" <wopr.dk@gmaill.com> skrev i en meddelelse
news:4a3f95e4$0$48237$14726298@news.sunsite.dk...
> Kurt G wrote:
>
>> Dim Menutabel, MenuArray(3,100), AntalMenuer
>>
> [snip]
>> For x = 0 to 2
>> MenuArray(x,AntalMenuer)= Menutabel(x)
>> Next
>> AntalMenuer = AntalMenuer+1
>
> sammenlignet med:
>> 265 For y = 0 to AntalMenuer-1
>> 266 If (MenuArray(y,0)= 0) Then
>> 267 If (MenuArray(y+1,0)= 0) Then 'Felt0=0 efterfølges af Felt0=0
>
> bytter du lidt om på dimensionerne.
> Det skal nok være
> If (MenuArray(0,y)= 0) Then

Det har jeg også lige selv fundet ud af, det skulle jeg have set lidt før.

> Derudover kommer du måske til at bruge 1 for meget ved y+1.
> Hvis du f.eks kun har 1 i AntalMenuer, så er der kun et element(x,0)
> array,
> og y+1, dvs. element(x,1) er udefineret.
>
> --
> Med venlig hilsen
> Stig Johansen

Ja, jeg bliver nødt til at lave et check for at y+1 ikke overstiger
AntalMenuer-1.
Tak for jeres hjælp!

Mvh Kurt



Rune Jensen (22-06-2009)
Kommentar
Fra : Rune Jensen


Dato : 22-06-09 16:46

Stig Johansen skrev:
> Kurt G wrote:
>
>> Dim Menutabel, MenuArray(3,100), AntalMenuer
>>
> [snip]
>> For x = 0 to 2
>> MenuArray(x,AntalMenuer)= Menutabel(x)
>> Next
>> AntalMenuer = AntalMenuer+1
>
> sammenlignet med:
>> 265 For y = 0 to AntalMenuer-1
>> 266 If (MenuArray(y,0)= 0) Then
>> 267 If (MenuArray(y+1,0)= 0) Then 'Felt0=0 efterfølges af Felt0=0
>
> bytter du lidt om på dimensionerne.
> Det skal nok være
> If (MenuArray(0,y)= 0) Then
>
> Derudover kommer du måske til at bruge 1 for meget ved y+1.
> Hvis du f.eks kun har 1 i AntalMenuer, så er der kun et element(x,0) array,
> og y+1, dvs. element(x,1) er udefineret.

Damn... Jeg vidste ikke man kan lave fler-dimensionale arrays...

Pinligt!

[Blushing red ears]


MVH
Rune Jensen

Søg
Reklame
Statistik
Spørgsmål : 177578
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste