Witam!
Temat może banalny, ale mimo szukania na 4programmers i google nie znalazłem rozwiązania dla Delphi. A mianowicie: jak zabezpieczyć się przed wykrzaczeniem programu spowodowanym wprowadzeniem litery do zmiennej liczbowej przez Readln(Nie w ANSII itd).
Podam przykład, o co mi chodzi:
var
a : Integer;
begin
Readln(a);
Writeln(a);
Readln;
end.
W tym przypadku wprowadzenie litery od razu wykrzacza program.
var
a : Integer;
begin
Writeln('1-Kontynuuj, 2-Przerwij, 3-Powrot');
Readln(a);
If a <> 1 and 2 and 3 then
Writeln('Zly zakres!')
else
Writeln(a);
Readln;
end.
Tutaj wszystko fajnie, jednak podanie do a litery wykrzacza mi program przed przejściem do if-a.
W necie znalazłem, że w innych językach można sprawdzić co się wprowadza z klawiatury przed przypisaniem do zmiennnej.
Ale w delphi:
var
a : Integer;
begin
Readln(a); // <-- wczytanie i przypisanie do zmiennej
Writeln(a);
Readln;
end.
var
a : Integer;
begin
Readln; // I jak skontrolowac, co sie wpisalo? Skoro nie jest przypisane do zmiennej, jak moge sie do wprowadzenia z klawiatury odwolac?
If // no wlasnie, jezeli co?
then Writeln('Wprowadz liczbe!');
Writeln(a);
Readln;
end.