微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题利用NUL及FILE()控制驱动器符的输入
栏目软件大世界
作者何正峰
发布1997-01-01
  在数据库程序设计中,有时需要知道系统实际可接受多少个驱动器或判断用户输入的驱动器符是否有效。如:给出一个驱动器列表,由用户来选择所要操作的驱动器;或者在程序运行中由用户从键盘输入驱动符,紧接着判断用户输入的字符是否为有效的驱动器符。
  大家都知道:NUL是DOS预留的文件名,上面所提到的各种数据库管理系统都有FILE()函数,其作用是:如果文件存在,则FILE()返回逻辑真值,否则,返回假值。因此根据FILE()返回某字母所代表的驱动器真值,否则,返回假值。因此根据FILE()返回某字母所代表的驱动器符下的NUL文件的真假,得知该字母是否为有效的驱动器符。
  例1:确保用户输入有效的驱动器符:
  clear
  set talk off(编译型数据库不要此行)
  do while .t
  accept“输入驱动器符(A,B,C等):”to driver
  if file(drive+':\nul')
  exit
   else
  @10,10 say“无效的驱动器符”
  ?? chr(7)
  key=inkdy(2)
  loop
  endif
  enddo
  return
  例2:给出驱动器的列表。
  clear
  set talk off (编译型数据库不要此行)
  @10,10 say “有效驱动器符为:”
  if file(“A:\NUL:”) 判断是否有驱动器A:
   ?? “A:”
  endif
  if file(“B:\NUL”)
  ?? “B:”  判断是否有驱动器B:
  endif
  n=0
  do while .t.
  driver=chr(ASC(“C”)+n)+“:\NUL”
  if file(drive)
  ?? chr (asc(“C”)+n)+“:”  判断是否有驱动器C:,D:,E:……等
  n=n+1
   else
   exit
   endif
  enddo
  return
  注:运行此例程时,若有软驱或光驱,请先将驱动器中放入盘片。
  以上例程对于有ramdrive.sys及subst.exe等设置成的虚拟驱动器也能很好的认可,并在多种机器及以上数据库管理系统中通过。