Hola bit.
Turbo Pascal traía la unida
Crt que incluía funciones para teclado y pantalla, entre las que se encontraba
ReadKey que fué la que redefiní en el código de mi mensaje anterior, ya que ni
Delphi ni
Lazarus la incorporan.
Viendo tu código, te comento que no hay manera de controlar los caracteres ingresados en las funciones
Read y
Readln; de ese modo no es posible.
Si te fijas el el código para consola del mensaje
#3, verás que lo resuelvo con un ciclo y un condicional:
Código Delphi
[-]
repeat
ch := ReadKey;
if ch in ['0'..'9'] then
begin
write(ch);
num:= num *10 + Ord(ch)-Ord('0')
end;
until ch = #13; { hasta que se presione ENTER
De ese modo logro el control que no me permiten
Read y
Readln.
Saludos