uses crt;
function leerNumero(longitud: integer): string;
var
numero : string;
tecla : char;
i,x,y : integer;
begin
x := whereX;
y := whereY;
numero := '';
i := 1;
repeat
tecla := readKey;
case tecla of
'0'..'9' : {Teclas del 0 al 9}
if i <= longitud then
begin
numero := numero + tecla;
i := i + 1;
end;
chr(8) : { Tecla de retroceso para borrar el ultimo digito}
if i > 1 then
begin
i := i - 1;
numero[i] := ' ';
gotoxy(x,y);
write(numero);
numero := copy(numero,1,i-1);
end
end;
gotoxy(x,y);
write(numero);
until ( tecla = chr(13) ) and ( length(numero) > 0 );
leerNumero := numero;
end;
var
numeroTxt : string[20];
numeroLong : longInt;
estado : integer;
begin
clrscr;
write('Ingrese un numero maximo de 20 digitos: ');
numeroTxt := leerNumero(20);
writeln;
writeln('Usted ingreso: ',numeroTxt);
{Conversion del Texto a Entero}
val(numeroTxt,numeroLong, estado);
writeln('El valor desde la variable longInt: ',numeroLong);
readKey;
end.