[Pascal] zapezpieczenie programu przed błędnymi danymi

Witam, mam pytanie:

Jak zabezpieczyć program żeby w przypadku gdy oczekuje on liczby a dostanie literę nie zamykał się tylko pokazał komunikat o nieprawidłowych wprowadzonych danych?

repeat 

    write('Podaj liczbe: '); 

    {$I-} 

    readln(a); 

    {$I+} 

    i := ioresult; 

    if i<>0 then 

      writeln('Nieprawidłowe wprowadzenie danych'); 

  until i=0;

Gdzie i,a:integer;

Dzięki, czy to uchroni usera również przed wspisaniem za dużych liczb np 99999999999 do zmiennej typu word?

Nie pamiętam, spróbuj :slight_smile:

Nie działa.

mam to tak:

write('Podaj max. liczbę punktow: ');

readln©;

spr:=ioresult;

if spr<>0 then begin writeln(‘Nieprawidłowa liczba’); goto 1; end;

po wpisaniu c jest runtime error.

Nie masz dwóch najważniejszych w tym wypadku linijek:

{$I-}

{$I+}

Właśnie one odpowiednio wyłączają / włączają zgłaszanie błędów w programie :slight_smile: ioresult właśnie zawiera ostatnio zwrócony błąd

myślałem że wszystko co jest w znacznikach { } było nie istotne dla kompilatora. Dzięki :]