Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations bkrike on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

error handling for calculator

Status
Not open for further replies.

davext

Programmer
Oct 6, 2003
18
CA
Here is a calculator I'm trying to work with, does anyone know how to error trap so that if someone types in a non-numeric value, the display will read "NaN".. for the program below, an error just pops up. I'm new to VBScript. Any help is much appreciated!


<!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;>


<!-- Recommended template for
Microsoft Visual Basic Scripting-Enabled Pages -->
<HTML>
<HEAD><TITLE>VBScript sample: Calculator</TITLE></HEAD>

<body background=&quot;brick3.gif&quot;><center>

<center>

<!--
Microsoft VBScript sample
VBScript: The easiest, most powerful way to program custom web solutions.
-->

<FONT FACE=ARIAL SIZE=3> <!-- global default -->

<SCRIPT LANGUAGE=&quot;VBScript&quot;>
<!--
' Module-level variables
Dim Accum ' Previous number (operand) awaiting operation
Dim FlagNewNum ' Flag to indicate a new number (operand) is being entered
Dim PendingOp ' Pending operation waiting for completion of second operand

Sub NumPressed(Byval Num)

If FlagNewNum Then
Document.Keypad.Readout.Value = Num
FlagNewNum = False
Else
If Document.Keypad.Readout.Value = &quot;0&quot; Then
Document.Keypad.Readout.Value = CStr(Num)
Else
Document.Keypad.ReadOut.Value= Document.Keypad.ReadOut.Value & CStr(Num)
End If
End If

End Sub

Sub Decimal_onClick()
Dim curReadout
curReadOut = Document.Keypad.ReadOut.Value
If FlagNewNum Then
curReadOut = &quot;0.&quot;
FlagNewNum = False
Else
If InStr(curReadOut, &quot;.&quot;) = 0 Then
curReadOut = curReadOut & &quot;.&quot;
End If
End If
Document.Keypad.ReadOut.Value = curReadOut
End Sub

Sub Plus_onClick()
Operation &quot;+&quot;
End Sub

Sub Minus_onClick()
Operation &quot;-&quot;
End Sub

Sub Multiply_onClick()
Operation &quot;*&quot;
End Sub

Sub Divide_OnClick()
Operation &quot;/&quot;
End Sub

Sub Operation(Byval Op)
Dim Readout
Dim Zero

ReadOut = Document.Keypad.ReadOut.Value
If FlagNewNum and PendingOp <> &quot;=&quot; Then
' User is hitting op keys repeatedly, so don't do anything
Else
FlagNewNum = True
Select Case PendingOp
Case &quot;+&quot;
Accum = CDbl(Accum) + CDbl(ReadOut)
Case &quot;-&quot;
Accum = CDbl(Accum) - CDbl(ReadOut)
Case &quot;/&quot;
Zero=CDbl(ReadOut)
if Zero=0 then
Document.Keypad.ReadOut.Value=&quot;Infinity&quot;
Accum=&quot;Infinity&quot;
Else
Accum = CDbl(Accum) / CDbl(ReadOut)

End If

Case &quot;*&quot;
Accum = CDbl(Accum) * CDbl(ReadOut)
Case Else
Accum = ReadOut
End Select
Document.Keypad.ReadOut.Value = Accum
PendingOp = Op
End If
End Sub

Sub ClearEntry_onClick()
' Remove current number and reset state
Document.Keypad.ReadOut.Value = &quot;0&quot;
FlagNewNum = True
End Sub

Sub Clear_onClick()
' Clear accumulator and pending operation, and clear display
Accum = 0
PendingOp = &quot;&quot;
ClearEntry_onClick
End Sub

Sub Neg_onClick()
Document.Keypad.ReadOut.Value = CDbl(Document.Keypad.ReadOut.Value) * -1
End Sub

Sub Percent_onClick()
Document.Keypad.ReadOut.Value = (CDbl(Document.Keypad.ReadOut.Value) / 100) * Accum
End Sub

Sub Equals_OnClick()
Operation &quot;=&quot;
End Sub

-->
</SCRIPT>


<FORM Name=&quot;Keypad&quot;>
<TABLE>
<B>
<TABLE background=&quot;brick4.jpg&quot; BORDER=2 WIDTH=50 HEIGHT=60 CELLPADDING=1 CELLSPACING=5>
<CAPTION ALIGN=top>

</CAPTION>
<TR>
<TD COLSPAN=3 ALIGN=MIDDLE><INPUT NAME=&quot;ReadOut&quot; TYPE=&quot;Text&quot; SIZE=24 VALUE=&quot;0&quot; WIDTH=100%></TD>
<TD></TD>
<TD><INPUT NAME=&quot;Clear&quot; TYPE=&quot;Button&quot; VALUE=&quot; C &quot; ></TD>
<TD><INPUT NAME=&quot;ClearEntry&quot; TYPE=&quot;Button&quot; VALUE=&quot; CE &quot; ></TD>
</TR>
<TR>
<TD><INPUT NAME=&quot;Seven&quot; TYPE=&quot;Button&quot; VALUE=&quot; 7 &quot; OnClick=&quot;NumPressed(7)&quot;></TD>
<TD><INPUT NAME=&quot;Eight&quot; TYPE=&quot;Button&quot; VALUE=&quot; 8 &quot; OnClick=&quot;NumPressed(8)&quot;></TD>
<TD><INPUT NAME=&quot;Nine&quot; TYPE=&quot;Button&quot; VALUE=&quot; 9 &quot; OnClick=&quot;NumPressed(9)&quot;></TD>
<TD></TD>
<TD><INPUT NAME=&quot;Neg&quot; TYPE=&quot;Button&quot; VALUE=&quot; +/- &quot; ></TD>
<TD><INPUT NAME=&quot;Percent&quot; TYPE=&quot;Button&quot; VALUE=&quot; % &quot; ></TD>
</TR>

<TR>
<TD><INPUT NAME=&quot;Four&quot; TYPE=&quot;Button&quot; VALUE=&quot; 4 &quot; OnClick=&quot;NumPressed(4)&quot;></TD>
<TD><INPUT NAME=&quot;Five&quot; TYPE=&quot;Button&quot; VALUE=&quot; 5 &quot; OnClick=&quot;NumPressed(5)&quot;></TD>
<TD><INPUT NAME=&quot;Six&quot; TYPE=&quot;Button&quot; VALUE=&quot; 6 &quot; OnClick=&quot;NumPressed(6)&quot;></TD>
<TD></TD>
<TD ALIGN=MIDDLE><INPUT NAME=&quot;Plus&quot; TYPE=&quot;Button&quot; VALUE=&quot; + &quot; ></TD>
<TD ALIGN=MIDDLE><INPUT NAME=&quot;Minus&quot; TYPE=&quot;Button&quot; VALUE=&quot; - &quot; ></TD>
</TR>
<TR>
<TD><INPUT NAME=&quot;One&quot; TYPE=&quot;Button&quot; VALUE=&quot; 1 &quot; OnClick=&quot;NumPressed(1)&quot;></TD>
<TD><INPUT NAME=&quot;Two&quot; TYPE=&quot;Button&quot; VALUE=&quot; 2 &quot; OnClick=&quot;NumPressed(2)&quot;></TD>
<TD><INPUT NAME=&quot;Three&quot; TYPE=&quot;Button&quot; VALUE=&quot; 3 &quot; OnClick=&quot;NumPressed(3)&quot;></TD>
<TD></TD>
<TD ALIGN=MIDDLE><INPUT NAME=&quot;Multiply&quot; TYPE=&quot;Button&quot; VALUE=&quot; * &quot; ></TD>
<TD ALIGN=MIDDLE><INPUT NAME=&quot;Divide&quot; TYPE=&quot;Button&quot; VALUE=&quot; / &quot; ></TD>
</TR>
<TR>
<TD><INPUT NAME=&quot;Zero&quot; TYPE=&quot;Button&quot; VALUE=&quot; 0 &quot; OnClick=&quot;NumPressed(0)&quot;></TD>
<TD><INPUT NAME=&quot;Decimal&quot; TYPE=&quot;Button&quot; VALUE=&quot; . &quot; ></TD>
<TD COLSPAN=3></TD>
<TD><INPUT NAME=&quot;Equals&quot; TYPE=&quot;Button&quot; VALUE=&quot; = &quot;></TD>
</TR>
</TABLE>
</TABLE>
</B>
</FORM>

</font>

</BODY>
</HTML>
 
You should first read faq222-2244, especially paragraph 3. This will lead you to post your VBScript questions in the VBScript forum. This is the VB6 forum - you're looking for forum329

Good luck there

________________________________________________________________
If you want to get the best response to a question, please check out FAQ222-2244 first

'People who live in windowed environments shouldn't cast pointers.'
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top