Avatar billede Slettet bruger
10. september 2003 - 22:12 Der er 16 kommentarer

Test System..

Hvordan laver jeg såden et system så jeg kan plusse mine points ved en request.form?
Jeg har prøvet her:

<%
svar1 = request.form("spg1")
svar2 = request.form("spg2")
resultat = (svar1 + svar2)
response.write resultat
%>

Men det giver ikke det rigtige reslutat! Den tager svar1 og skriver svar 2 bagved i stetet for at lægge dem sammen?
Avatar billede nmh Nybegynder
10. september 2003 - 22:14 #1
svar1 = Cint(request.form("spg1") )
svar2 = Cint(request.form("spg2"))
resultat = (svar1 + svar2)
Avatar billede freet Nybegynder
10. september 2003 - 22:15 #2
Prøv Uden mellemrum mellem der hvor der står resultat = (svar1 + svar2) prøv med

resultat = (svar1+svar2)

det kan godt være det ikke virker men prøv fordi er ikke s god til asp :D
Avatar billede nmh Nybegynder
10. september 2003 - 22:16 #3
Det du modtager  er tekst og ikke tal.
Når du blot plusser svarer det til at gøre sådan "2"+"3" og det er jo tekststrengen "23"
Avatar billede klid Nybegynder
10. september 2003 - 22:18 #4
resultat=CInt("svar1")+CInt("svar2")
Avatar billede nmh Nybegynder
10. september 2003 - 22:18 #5
Cint konvertere en tekststreng til et helt tal, hvis det er et tal mellem ca. -32000 og 32000.
Hvis det er større heltal brug Clng
og hvis det er kommatal brug Cdbl (lange decimal tal, fo at sige det løst)
Avatar billede nmh Nybegynder
10. september 2003 - 22:21 #6
Hvis der ikke er indtastet et tal fås en fejlsituation, når man bruger Cint.
Derfor gør helst således:
svar1=Cint(request.form(""spg1")
if isNumeric(svar1) then
  svar1=Cint(svar1)
else
  'fejlsituation som nu skal håndteres
  ....
end if
Avatar billede netro Nybegynder
10. september 2003 - 23:10 #7
IsNumeric returnere også true ved en tom værdi. Så du er nødt til lige at tjekke for denne også.

If Trim(svar1) <> "" And IsNumeric(svar1) Then 'blabla

Alternativt for at undgå en fejlmeddelelse ved en tom værdi, kan du indsætte et 0.

resultat = CInt(0 & svar1) + CInt(0 & svar2)

Selv bruger jeg altid følgende funktion til at tjekke, om en værdi er et (positivt) heltal.

Function Heltal(Tal)
    Dim myReg
    Set myReg = New RegExp
    myReg.IgnoreCase = True
    myReg.Pattern = "^\d{1,}$"
    Heltal = myReg.Test(Tal)
End Function

If Heltal(Streng) Then 'blabla
Avatar billede nmh Nybegynder
10. september 2003 - 23:35 #8
netro>> I min maskine vil isNumeric("") returnere Falsk (nu bliver False minsandten oversat, når man udskriver med MsgBox).

Mon det er noget der fornylig er blevet rettet i VBscript??
Du havde skuffet mig, hvis du ikke havde brugt RegExp i din funktion :o).
Men RegExp kan ikke kontrollere for om tallet er for stort.
Cint("33000") giver jo en fejlmeddelelse.

Hvordan laver man en funktion med RegExp, der afgør om et tal kan opfattes som et tal af typen dbl?
123.45.6,789e-20 bliver acceptert af isNumeric.
Avatar billede netro Nybegynder
10. september 2003 - 23:54 #9
Hmm... det aner jeg faktisk ikke. Men kan ikke se logikken i, at "" opfattes som en numerisk værdi.

Hehe... Du kan sætte en øvre grænse på for længden. 1-tallet angiver, at der min skal være ét tegn i strengen.

"^\d{1,4}$" betyder, at der min skal være ét tegn og max fire fra 0-9 (d).

Ang. decimaltal ville jeg nok lave min pattern således;

myReg.Pattern = "^\d{0,}[\.]{0,1}\d{1,}$"
Avatar billede nmh Nybegynder
11. september 2003 - 09:16 #10
netro>>
I min maskine opfattes "" IKKE som en numeriskværdi.
Derfor er testen isNumeric("") altså i orden. isNumeric("") er False.
Så isNumeric virker altså som den skal også for de tomme strenge.
Avatar billede netro Nybegynder
11. september 2003 - 14:08 #11
Ja, men prøv med en blank variabel. Her returnerer IsNumeric(TomVar) sand. Derimod returnerer IsNumeric(CStr(TomVar)) falsk.
Avatar billede netro Nybegynder
11. september 2003 - 14:10 #12
Se evt. Coltaus svar her: http://www.eksperten.dk/spm/183732
Avatar billede nmh Nybegynder
11. september 2003 - 16:04 #13
Ok, ja desværre er der for meget i denne branche, der kører efter princippet: Det skal ikke være for let. :0(
Avatar billede netro Nybegynder
11. september 2003 - 16:06 #14
:-)
Avatar billede netro Nybegynder
01. oktober 2003 - 03:33 #15
Lukketid, hr.?
Avatar billede netro Nybegynder
01. oktober 2003 - 03:33 #16
Hr. Papir ;o)
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