利用NUL及FILE()控制驱动器符的输入
大家都知道: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等设置成的虚拟驱动器也能很好的认可,并在多种机器及以上数据库管理系统中通过。