webForumDet fria alternativet

Division med noll?

ASP

1 svar · 201 visningar · startad av casca

Medlem sedan feb. 20005 891 inlägg
Frågan#1

Håller på med ett script, ganska enkelt utan databaser, använder textfiler istället. I koden har jag använt en del matematiska operatorer, typ "/" för delat och använt Round()-funktionen för att avrunda talen. Men nu så när textfilerna med resultaten innehåller "0" så klarar inte servern av att avrunda, får följande felmeddelande:

Körningsfel i Microsoft VBScript fel '800a000b'

Division med noll

/polly-v1/default.asp, rad 60

Och här är koden:

<%
    ' Declaring variables
    ' -------------------
    Dim Yes, No, Tot, yesShow, noShow, yesCheck, noCheck, Question
    Set C = Server.CreateObject("Scripting.FileSystemObject")

    ' Let's read some files
    ' ---------------------
    Set T = C.OpenTextFile(Server.MapPath("db\yes.txt"), 1)
    Yes = T.ReadAll
    T.Close

    Set T = C.OpenTextFile(Server.MapPath("db\question.txt"), 1)
    Question = T.ReadAll
    T.Close

    ' And the last file-read
    ' ----------------------
    Set T = C.OpenTextFile(Server.MapPath("db\no.txt"), 1)
    No = T.ReadAll
    T.Close

    ' Checking which alternative is chosen
    ' ------------------------------------
     If Request.Querystring("id") = "yes" Then
    Set T = C.OpenTextFile(Server.MapPath("db\yes.txt"), 2)
    Yes = CInt(Yes) + 1 
    T.WriteLine Yes

     ElseIf Request.Querystring("id") = "no" Then 
    Set T = C.OpenTextFile(Server.MapPath("db\no.txt"), 2)
    No = CInt(No) + 1
    T.WriteLine No
    T.Close

     End If

    ' And now som calculating
    ' -----------------------
    If Yes = "0" OR No = "0" Then
     yesShow = Yes
     noShow = No
    Else
     yesShow = Round(Yes / Tot * 100, 0)
     noShow = Round(No / Tot * 100, 0)
     Tot = CInt(Yes) + CInt(No)
    End If

    ' This isn't really necessary, but still useful
    ' ---------------------------------------------
    Set T = Nothing
    Set C = Nothing

    ' End of Script
    ' -------------
    %>

Har, som ni ser, testat med en If-sats för att kolla om textfilerna innehåller 0 röster, men det funkar ändå inte! :(

------------------
"Moral är bara en fråga för människor som inte redan befinner sig i helvetet" - Wally

[Redigerat av casca den 10 dec 2000]

Medlem sedan juni 2000112 inlägg
#2

Du måste ju ta bort hartassarna kring nollan i if-satsen, annars kontrollerar satsen om Yes innehåller strängen "0".

If Yes = "0" OR No = "0" Then

------------------
"Den sanna kunskapen är erfarenhet" - Albert Ensten

263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)