Christopher Larsen skrev:
> Men for at jeg præcist kan tjekke indtastningen, skal jeg også
> have lagt tallene sammen. Hvordan gør jeg det?
+
Det der evt. kan snyde er at du skal typecaste til en taltype (int)
først.
> Jeg har lavet et slags tilløb til en løsning. Men den virker
> ikke!
*Hvordan* virker den ikke? Det er lettere at hjælpe dig hvis du
fortæller konkret hvordan din kode ikke virker. Se evt. siden her:
<
http://asp-faq.dk/article/?id=41>
> If not IsNumeric(Left(Request.Form("cprnr"), 10))*1 then
>
> response.write "Forkerte tegn, prøv igen"
>
> else
>
> If not Len(request.form("cprnr")) = 10 Then
> response.write "Forkert indtastning, prøv igen"
Jeg vil foreslå dig at bytte om på de to tjek - så længdetjekket
kommer før tjekket af taltypen. Hvis der er indtastet en værdi på
mindre end 10 tegn, vil det øverste tjek give en kørselsfejl.
Du kan i øvrigt også gøre din dobbelte if-sætning lidt enklere ved
at bruge syntaksen herunder:
If [udtryk] Then
ElseIf [andet udtryk] Then
Else
End If
(der kan sættes flere elseIF-linjer ind hvis der er behov for det).
> function beregn(nummer)
> Dim vaegte, cpr, i
> vaegte = array(4, 3, 2, 7, 6, 5, 4, 3, 2, 1)
> cpr = (request.form("cprnr"))
>
> For i = 1 to 10
> response.write CInt(mid(cpr, i, 1)) * vaegte(i-1)
> Next
> end function
Koden herover udskriver blot værdierne.
Hvis du skal lægge tallene sammen, skal du bruge en variabel til at
gemme summen i - fx "sum". Giv sum en startværdi på 0 og læg så
værdien af produktet af vaegte(i) og det tilsvarende tal fra cpr-
nummeret til for hver enkelt ciffer (læg summen ind i for-løkken).
Jeg vil lade dig selv pusle med at få funktionen på plads.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html