pascal obsługa błędu 106

0

Mój pierwszy post, mam nadzieję, że się nie zbłaźnię :)

Stworzyłem program-projekt na informatykę i pozostała mi tylko jego optymalizacja. Chcę, żeby był całkowicie idiotoodporny. Zostało mi jedno miejsce, z którym nie mogę sobie poradzić:

...
ile:byte;
...
ilepow:
         g(1,2);
         write('Ilość komórek na osobę:     '); g(wherex-4,wherey);
         {$-} 
               readln(ile); 
               if IORESULT<>0 then goto ilepow; 
         {$+}

Po prostu bardzo nie chcę, żeby głupi użytkownik/wredny nauczyciel mógł zawiesić program, wpisując ciąg znaków, zamiast liczby. W tym celu chcę cofnąć go jeszcze raz do readln, poprzednio wymazując błędny wpis (stąd te spacje po dwukropku i przekierowanie kursora do tyłu). Jednak program zarzuca mi exitcode 106.

PS: Program muszę oddać jutro. "g" to zdefiniowana przeze mnie procedura działająca, jak gotoxy (po co tyle pisać..).

0
  1. Poczytaj o funkcji Val
  2. Nie używaj GoTo, to jest złe, zapakuj to w pętlę sprawdzająćą wynik funkcji Val
0

Wystarczyło dodać I do {$-} :)
Powinno być {$I-}.

Warto zapamiętać! I dziękuję :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1