Simpel ASP-script: wat doe ik fout?

Pagina: 1
Acties:

  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 27-05 21:11

CmdrKeen

Krentenboltosti

Topicstarter
Onderstaand script levert mij deze foutmelding op:
Runtimefout Microsoft VBScript (0x800A000D)
Typen komen niet met elkaar overeen

Wat gaat er fout, waarom en hoe kan ik het beter doen?

(Search gebruikt, internet doorzocht.)
<% @Language = "VBScript" %>
<html>

<head>
<%
Dim aantal(3)
%>
</head>

<BODY>


<%
FOR i = 0 TO 2

aantal(i) = aantal + 1
Response.Write ("<BR>" & aantal(i))

NEXT
%>

</BODY>
</HTML>
/Edit - Respond veranderd in Response (duh)

Bloed, zweet & koffie


Verwijderd

Op vrijdag 12 oktober 2001 10:30 schreef Vilenin het volgende:
Onderstaand script levert mij deze foutmelding op:
Runtimefout Microsoft VBScript (0x800A000D)
Typen komen niet met elkaar overeen

Wat gaat er fout, waarom en hoe kan ik het beter doen?

(Search gebruikt, internet doorzocht.)
[..]
Je hebt bij je increment (aantal = aantal + 1) geen index van de array opgegeven, wat wel had gemoeten.

Jij deed: aantal(i) = aantal + 1
het moet zijn: aantal(i) = aantal(i) + 1

edit:

Wat betaai zegt is inderdaad ook wel handig :), anders zit er straks weer een fout in.

Verwijderd

ik zou ook response.write gebruiken ;)

okdan *D

  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 27-05 21:11

CmdrKeen

Krentenboltosti

Topicstarter
aantal(i) = aantal(i) + 1 is niet wat ik nodig heb.

De variabele Aantal was misschien verkeerd gekozen. Wat als ik schrijf: aantal(i) = bladiebla + 1

Bloed, zweet & koffie


Verwijderd

Op vrijdag 12 oktober 2001 10:47 schreef Vilenin het volgende:
aantal(i) = aantal(i) + 1 is niet wat ik nodig heb.

De variabele Aantal was misschien verkeerd gekozen. Wat als ik schrijf: aantal(i) = bladiebla + 1
Dan zit het probleem in de Response.Write. Je wilt namelijk een integer afdrukken met een functie die alleen strings aankan, probeer het eens zo:

Response.Write("<BR>" & CStr(aantal(i)))

Verwijderd

hier, net getest, werkt perfect:

<%

dinges=array()

for i = 0 to 3
redim preserve dinges(i+1)
dinges(i) = i
response.write dinges(i) & "<br>"
next

%>

http://193.173.29.216/testasp.asp

Verwijderd

Wat voor beginwaarde heeft aantal(i)? Want anders probeer je 1 op te tellen bij iets ongedefineerds en dat lukt dan niet zo goed. Hetzelfde geldt volgens mij wanneer je het vervangt door blabla; heeft ook nog geen waarde.

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

en als je het toch zonder redim wilt doen ipv:

for i = 0 to 2
aantal(i) = aantal(i) + 1%>
<%=aantal(i)%>
<% next

for i = 0 to 2%>
<%=aantal(i)%>
<%aantal(i) = aantal(i) + 1
next

als laatst altijd optellen!!, anders komt ie buiten de array en errort ie |:(

disjfa - disj·fa (meneer)
disjfa.nl


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 27-05 21:11

CmdrKeen

Krentenboltosti

Topicstarter
Op vrijdag 12 oktober 2001 10:55 schreef Shivo het volgende:
Wat voor beginwaarde heeft aantal(i)? Want anders probeer je 1 op te tellen bij iets ongedefineerds en dat lukt dan niet zo goed.
Waarom niet? 0 + 1 = 1 toch?

Bloed, zweet & koffie


Verwijderd

maar NULL + 1 niet ;)

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Response.Write schrijft alles hoor, hoef je niet alles eerst om te zetten naar string.

  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 27-05 21:11

CmdrKeen

Krentenboltosti

Topicstarter
Op vrijdag 12 oktober 2001 11:07 schreef betaai het volgende:
maar NULL + 1 niet ;)
Waarom eigenlijk niet? Ik geloof je hoor, daar niet van, maar vind het wel heel vreemd.

Bloed, zweet & koffie


Verwijderd

0 is een getal, NULL (of nothing) is absoluut niks, ongeinitialiseerd geheugen zeg maar

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17-09 08:12

Crazy D

I think we should take a look.

Op vrijdag 12 oktober 2001 11:07 schreef betaai het volgende:
maar NULL + 1 niet ;)
Volgens mij is alles binnen Vbscript in 1e instantie Empty... (maja Empty + 1 heb je 1Empty, of een "empty 1"... iig niet wat je denkt dat het gaat worden ;)

Ik zet meestal direct onder de declaratie (je hebt Option Explicit toch wel aan staan he?) alvast default waardes.. string wordt "", getallen 0. Scheelt weer wat mogelijke problemen.

Exact expert nodig?

Pagina: 1