Avatar billede cdygaard Nybegynder
01. februar 2002 - 15:48 Der er 9 kommentarer og
1 løsning

Typerne passer ikke sammen: 'add'

Hvad er fejlen her?
Min global.asa fil ser sådan her ud:<% LANGUAGE="VBScript" RUNAT="Server"%>
<%
Sub Function add(int1, int2)
add = int1 + int2
End Sub
Sub Funktion times(int1, int2)
times = int1 * int2
End Sub
%>
Min test fil ser sådan her ud:
<% LANGUAGE="VBScript" %>
<HTML>
<HEAD>
<TITLE>Add/Times test</TITLE>
</HEAD>
<BODY>
<%
intParm1 = Rnd*12
intParm2 = Rnd*140
add = add(intParm1, intParm2)
Response.Write intParm1 & " + " & intParm2 & " = "
Response.Write add & "<BR>"
Times = Times(intParm1, intParm2)
Response.Write intParm1 & " * " & intParm2 & " = "
Response.Write Times & "<BR>"
%>
Jeg får fejlmeldingen:
Typerne passer ikke sammen: 'add'
/Test/Add-TimesTest.asp, line 10

Avatar billede rou Nybegynder
01. februar 2002 - 16:00 #1
Du blander koncepterne SUB og Function, du må nøjes med den ene.
<%
Function add(int1, int2)
  add = int1 + int2
End Function

Funktion times(int1, int2)
  times = int1 * int2
End Function
%>

- Rou
Avatar billede bernhof Nybegynder
01. februar 2002 - 16:06 #2
Da du i testfilen kalder de to funktioner kan du ikke gemme de returnerede værdier i en variabel af samme navn som funktionerne:

vAdd = add(intParam1,intParam2)

og

vTimes = times(intParam1,intParam2)
Avatar billede bernhof Nybegynder
01. februar 2002 - 16:07 #3
og så skal du selvfølgelig også skrive

Response.Write vAdd & "<br>"

og

Response.Write vTimes & "<br>"
Avatar billede cdygaard Nybegynder
01. februar 2002 - 16:13 #4
Jeg har foretaget begge rettelser som jeg har fået fra Rou og Mikbj, men jeg får stadig den samme fejlmeddelelse. Der hvor der nu står:
vAdd = add(intParm1, intParm2)
Avatar billede cdygaard Nybegynder
01. februar 2002 - 16:14 #5
Jeg har skrevet Response.Write vAdd og vTimes
Avatar billede bernhof Nybegynder
01. februar 2002 - 16:21 #6
Prøv at kalde funktionerne "DoAdd" og "DoTimes" istedet, og husk også at ændre koden på testfilen:

vAdd = DoAdd(intParam1,intParam2)
vTimes = DoTimes(intParam1,intParam2)

det eneste forslag jeg lige umiddelbart kunne komme på :)
Avatar billede bernhof Nybegynder
01. februar 2002 - 16:59 #7
Hmm .. jeg prøvede at lægge en funktion ind i Global.asa og prøvede derefter at køre den fra en testside.
Jeg fik meddelelsen:

"Script blocks must be one of the allowed Global.asa procedures. Script directives within <% ... %> are not allowed within the Global.asa file. The allowed procedure names are Application_OnStart, Application_OnEnd, Session_OnStart, or Session_OnEnd."

Det ser vist ud til at man ikke kan lægge sine egne funktioner i Global.asa.
Avatar billede bernhof Nybegynder
01. februar 2002 - 17:00 #8
Prøv istedet at lægge funktionerne ind i bunden af din testside .. så skulle det vist virke!
Avatar billede cdygaard Nybegynder
01. februar 2002 - 20:22 #9
Jeg har prøvet alt hvad du skriver mikbj, men der er intet der virker alligevel. Jeg har endda prøvet at lægge funktionerne in i en Sub Session_OnStart/End Sub procedure, men jeg får den samme fejlmeddelelse.
Avatar billede coltau Juniormester
01. februar 2002 - 20:58 #10
Prøv at anvende nedenstående kode - den virker.

<%
Function add(int1, int2)
  add = int1 + int2
End function

Function times(int1, int2)
  times = int1 * int2
End function
%>
Min test fil ser sådan her ud:
<% LANGUAGE="VBScript" %>
<HTML>
<HEAD>
<TITLE>Add/Times test</TITLE>
</HEAD>
<BODY>
<%
intParm1 = Rnd*12
intParm2 = Rnd*140
xadd = add(intParm1, intParm2)
Response.Write intParm1 & " + " & intParm2 & " = "
Response.Write xadd & "<BR>"
xTimes = Times(intParm1, intParm2)
Response.Write intParm1 & " * " & intParm2 & " = "
Response.Write xTimes & "<BR>"
%>
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