Solved

Pascal data type checking

Posted on 2000-03-14
5
346 Views
Last Modified: 2010-04-16
In pascal, when I defined a integer data type and use a readling statement to get data from user input,
there is a run-time error if the user input characters but not numeric
so how do I manual checking the user input is the correct data type I defined
0
Comment
Question by:adrianmak
  • 3
  • 2
5 Comments
 
LVL 5

Accepted Solution

by:
scrapdog earned 25 total points
Comment Utility
a quick fix is to readln into a string, and then convert the string to an integer using the val procedure

the val procedure will do error checking for you


program foo;
var
  s :string;
  n :integer;
  code :integer;
begin
  write ('Enter an integer: ');
  readln(s);
  val(s, n, code);
  if code <> 0 then
    writeln('Not an integer.  Error at position: ', code);
  else
    writeln('the integer you entered is ',n);
  end;

end.  




The val procedure takes three parameters.  The first is a string that you wish to convert to an integer.  The second is the integer variable you want to store it in.  The third is the variable you want to store the "error" code in.  If the code is 0, the conversion took place successfully.  If it is not zero, the code variable will hold the index of the position in the string where the error occurred (such as an alphabetic character inside the string, etc.).

The reason for doing it this way is so you can perform you own error handling...a run-time error is unlikely to result regardless of what you enter into a string variable.
0
 

Author Comment

by:adrianmak
Comment Utility
scrapdog,

It works but it seems only work for integer but not include real numbers
0
 
LVL 5

Expert Comment

by:scrapdog
Comment Utility
val should work with both integers and reals

are you sure you set the type of your number variable to "real"?
0
 
LVL 5

Expert Comment

by:scrapdog
Comment Utility
(the "code" variable must always be an integer though)
0
 

Author Comment

by:adrianmak
Comment Utility
it works now.

It is depend on the data type of the variable n
if it define am integer then if i input a real number e.g. 5.6
it return of val is false
if defined as real it is true
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
Never store passwords in plain text or just their hash: it seems a no-brainier, but there are still plenty of people doing that. I present the why and how on this subject, offering my own real life solution that you can implement right away, bringin…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now