Pregunta: | 59723 - EVITAR QUE PASCAL ABORTE (ERROR 106: INVALID NUMERIC FORMAT) |
Autor: | Alex Fernandez |
Buenas
La duda es sencilla, dado este programa: VAR num: REAL; BEGIN READLN(num); END Cuando lo ejecute si intriduzco una letra el programa abortara, y me llevara a la pantallita azul de la linea de codigo. Tengo que hacer un programa "serio" para una practica, y me gustaria saber si antes de que aborte puedo mostrar un mensaje tipo "Dato incorrecto vuelva a introducirlo" o lo que sea para evitar que pascal deje de ejecutar el codigo. Gracias de antemano, y FELIZ NAVIDAD |
Respuesta: | ANGEL BLACK |
seria con la funcio IOResult asi, no lo he probado es que no tengo el pascal ahora en mi compu, :
{----------------------------} VAR num: REAL; begin repeat {para repetir hasta que se introduzca bien el numero} {$I-} {Desactivamos el control de error} READLN(num); {$I+} {Activamos el control de error, en esto no estoy seguro, sino te funciona quita esta linea y la colocas al final} {IOResult =0 el valor esta introducido correctamente} if IOResult <> 0 then WriteLn(´Valor Inválido´) readkey; else WriteLn(´Valor permitido´); readkey; UNTIL (R=0); end. {----------------------------} |
Respuesta: | ANGEL BLACK |
seria con la funcio IOResult asi, no lo he probado es que no tengo el pascal ahora en mi compu, :
{----------inicio------------------} VAR num: REAL; begin repeat {para repetir hasta que se introduzca bien el numero} {$I-} {Desactivamos el control de error} READLN(num); {$I+} {Activamos el control de error, en esto no estoy seguro, sino te funciona quita esta linea y la colocas al final} {IOResult =0 el valor esta introducido correctamente} if IOResult <> 0 then WriteLn(´Valor Inválido´) r=1; readkey; else WriteLn(´Valor permitido´); r=0; readkey; UNTIL (R=0); {sigues trabajando con tu variable ya sea en suma resta multi, etc, etc......} end. {-----------fin-----------------} |