在Turbo Pascal中用IoResult防止程序崩溃

Author: 赵卫成 Date: 1997-01-01

  在用Turbo PASCAL语言编程时,常遇到输入输出错误。例如:变量t1若定义为整型,而在执行readln(t1)时,输入了一个字串;在读写软盘时,盘片未插入等,这时程序就可能崩溃。防止程序在此时崩溃的一个办法,就是使用Turbo PASCAL提供的IoResult函数。
  函数IoResult返回最近一次I/O操作的状态值,返回值是0时表示输入输出操作成功。在使用前应加上{$I-},关闭I/O检查;如果IoResult返回值为0,即操作成功,此时应再加上{$I+},以打开I/O检查。程序TEST演示了如何使用IoResult来防止程序崩溃。
  PROGRAM Test;
  VAR t1,t2:INTEGER;f:TEXT;
  BEGIN  
  REPEAT   {判断t1是否为一个整数}      
  Write('请输入一个整数:');    
  {$I-} Readln(t1);t2:=IoResult;  
  UNTIL t2=0;   {只有在输入正确时才跳出循环}    
  {$I+} Writeln('正确!');Writeln;  
  REPEAT   {检查A驱是否准备好写入文件}      
  Writeln('请插入A盘后敲回车键!');Readln;      
  Assign(f,' temp.txt');    
  {$I-} Rewrite(f);      
  t2:=IoResult;  
  UNTIL t2=0;   {只有在A驱中插入软盘而且写保护开关关上时才跳出循环}      
  Writeln(f,'ok!');      
  Close(f);    
  {$I+} Writeln('A盘上写temp.txt正常!');
  END