/ 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
Regning i ASP
Fra : crha


Dato : 24-09-02 20:49

Hejsa

Jeg sidder her og prøver at lave nogle scripts der skal kunne regne
forskellige formler ud

Og lige i starten støder jeg på det første problem, når jeg vil lave et
plus stykke, ser det måske sådan ud:

<%
tal1 = Request.Form("tal1")
tal2 = Request.Form("tal2")

Response.Write tal1 + tal2
%>

Hvis tal1 er f.eks. 3 og tal2 er 5 skriver den 35, hvordan laver jeg det
rigtigt?

--
Leveret af:
http://www.kandu.dk/
"Vejen til en hurtig løsning"


 
 
Lars Hoffmann (24-09-2002)
Kommentar
Fra : Lars Hoffmann


Dato : 24-09-02 22:47

crha escribió / skrev

> Hvis tal1 er f.eks. 3 og tal2 er 5 skriver den 35, hvordan laver
> jeg det rigtigt?


Du skal lige lave dem om så de forstås som tal og ikke som tekst-streng.
Det kan du med heltal gøre med:


<%
tal1 = val(Request.Form("tal1"))
tal2 = val(Request.Form("tal2"))

Response.Write tal1 + tal2
%>
Med venlig hilsen
Lars Hoffmann

Mark S. Rasmussen (24-09-2002)
Kommentar
Fra : Mark S. Rasmussen


Dato : 24-09-02 21:28

> <%
> tal1 = val(Request.Form("tal1"))
> tal2 = val(Request.Form("tal2"))
>
> Response.Write tal1 + tal2
> %>

Såvidt jeg husker findes Val() da ikke i klassisk ASP?

Prop derfor denne funktion ind i dit dokument:

Function Val(intNumber)
If IsNumeric(intNumber) Then
Val = intNumber)
Else
Val = 0
End If
End Function

Mvh Mark

---
Postet via www.improve.dk


Lars Hoffmann (24-09-2002)
Kommentar
Fra : Lars Hoffmann


Dato : 24-09-02 23:29

Mark S. Rasmussen escribió / skrev

> S†vidt jeg husker findes Val() da ikke i klassisk ASP?

hmm, det er da muligt. Hvor søren er det så jeg har fået den val() idé
fra

Peter Lykkegaard (24-09-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 24-09-02 20:46

Som svar på skriblerier forfattet af crha

> tal1 = Request.Form("tal1")
> tal2 = Request.Form("tal2")

> Response.Write tal1 + tal2

> Hvis tal1 er f.eks. 3 og tal2 er 5 skriver den 35, hvordan laver jeg
> det rigtigt?

I VBScript er alle variabler af typen Variant, og kan derved antage andre
variable typer
I dit script har de to variabler antaget typen string og derfor går det galt
med din formel

Der findes en række forskellige funktioner der kan hjælpe dig en type
konvertering
Fx

CStr (string), CInt (integer), CLng (long), CSng (Single), CDbl (double)

Vær opmærksom på at du skal lave checks før brug af ovennævnte funktioner
ellers vil du let kunne få en runtime error

fx (simpel fejlhåndtering)

tal1 = Request.Form("tal1")
tal2 = Request.Form("tal2")

If IsNumeric(tal1) And IsNumeric(tal2) Then
Response.Write CLng(tal1) + CLng(tal2)
Else
Response.Write "Fejl under indtastning af tal1 eller tal2"
End If

mvh/Peter Lykkegaard



Jens Gyldenkærne Cla~ (24-09-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 24-09-02 20:54

crha skrev:

> Og lige i starten støder jeg på det første problem, når jeg
> vil lave et plus stykke, ser det måske sådan ud:
>
> <%
> tal1 = Request.Form("tal1")
> tal2 = Request.Form("tal2")

If isNumeric(tal1) Then
   tal1N = CInt(tal1)
Else
   tal1N = 0
End If

Tilsvarende med tal2.

Resultat = tal1N + tal2N
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.

crha (25-09-2002)
Kommentar
Fra : crha


Dato : 25-09-02 15:06

Tak, men hvis nu jeg kun har én form, hvor man skal kunne skrive f.eks.
2+5+4-2+1*8/2 og klikke send og så regner den det hele ud, hvordan gør
man det?

--
Leveret af:
http://www.kandu.dk/
"Vejen til en hurtig løsning"


Jens Gyldenkærne Cla~ (25-09-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 25-09-02 15:03

crha skrev:

> Tak, men hvis nu jeg kun har én form, hvor man skal kunne
> skrive f.eks. 2+5+4-2+1*8/2 og klikke send og så regner den
> det hele ud, hvordan gør man det?

Så du vil både have tal og operander i samme formfelt? Du kan lave
en funktion der løber den indtastede værdi igennem tegn for tegn og
deler det op i tal og operander - herefter kan du så bruge en ny
funktion til at lave selve regnestykket.

Spørg mig ikke om hvordan (jeg får ikke tid til at svare) - men
prøv evt. at lege lidt med det selv.

Hvis du vil gøre det lettere for dig selv kan du have minimum tre
formfelter - to til tal og et til en operand (+, -, /, etc.).


--
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

Torben Brandt (25-09-2002)
Kommentar
Fra : Torben Brandt


Dato : 25-09-02 16:43

Jens Gyldenkærne Clausen wrote in
dk.edb.internet.webdesign.serverside.asp:
> crha skrev:
>
> > Tak, men hvis nu jeg kun har én form, hvor man skal kunne
> > skrive f.eks. 2+5+4-2+1*8/2 og klikke send og så regner den
> > det hele ud, hvordan gør man det?
>
> Så du vil både have tal og operander i samme formfelt? Du kan lave
> en funktion der løber den indtastede værdi igennem tegn for tegn og
> deler det op i tal og operander - herefter kan du så bruge en ny
> funktion til at lave selve regnestykket.
>
> Spørg mig ikke om hvordan (jeg får ikke tid til at svare) - men
> prøv evt. at lege lidt med det selv.
>
> Hvis du vil gøre det lettere for dig selv kan du have minimum tre
> formfelter - to til tal og et til en operand (+, -, /, etc.).
>

Der er nu ikke nogen grund til at opfinde den dybe tallerken en gang
til.
Funktionen Eval kan - sjovt nok - evaluere et udtryk, som er på
streng-form.

Prøv fx at skrive
Response.Write Eval("2+5+4-2+1*8/2")

mvh Torben

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (25-09-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 25-09-02 17:03

Torben Brandt skrev:

> Der er nu ikke nogen grund til at opfinde den dybe tallerken
> en gang til.
> Funktionen Eval kan - sjovt nok - evaluere et udtryk, som er
> på streng-form.

Ah - den kendte jeg kun som javascriptfunktion. Det er naturligvis
_noget_ nemmere!

--
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

crha (25-09-2002)
Kommentar
Fra : crha


Dato : 25-09-02 18:30

Weee, tak for svaret Torben Brandt ;)
                        

--
Leveret af:
http://www.kandu.dk/
"Vejen til en hurtig løsning"


Esben (25-09-2002)
Kommentar
Fra : Esben


Dato : 25-09-02 23:23


> Response.Write tal1 + tal2

> Hvis tal1 er f.eks. 3 og tal2 er 5 skriver den 35, hvordan laver jeg det
> rigtigt?

Et smart trick der klarer det hurtigt er at starte med at lægge 0 til,
sådan:

Response.Write 0 + tal1 + tal2 'giver 5

Ved støre regnestykker sætter du dem bare i (), altså: 0 + (kæmpe
regnestykke)

Esben



Peter Lykkegaard (26-09-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 26-09-02 20:26

Som svar på skriblerier forfattet af Esben

> Ved støre regnestykker sætter du dem bare i (), altså: 0 + (kæmpe
> regnestykke)
>
Jeg spekulerer på hvad 0 + ("2" * "ti") mon giver af resultat

mvh/Peter Lykkegaard



Esben (27-09-2002)
Kommentar
Fra : Esben


Dato : 27-09-02 20:48


> > Ved støre regnestykker sætter du dem bare i (), altså: 0 + (kæmpe
> > regnestykke)
> >
> Jeg spekulerer på hvad 0 + ("2" * "ti") mon giver af resultat

Det er klart at det kun fungerer, når der ikke er en egentlig tekststreng i
regnestykket, og at man derfor kun kan bruge metoden når man er sikker på at
der ikke står 2*"10" f.eks. Men man kan jo tjekke før man gør noget med
IsNumeric().

Esben



Jens Gyldenkærne Cla~ (27-09-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 27-09-02 21:11

Esben skrev:

> Men man kan jo tjekke før man gør noget med IsNumeric().

Hvad er værdien af IsNumeric("4+3")?

Jeg tror man må klare sig med fejlhåndtering via error-objektet
(eller gøre livet besværligt og tjekke hele udtrykket mod fx et
regex med gyldige tegn).
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste