'*****************************************************
'Quick Basic 7.1 扩展函数库
'由秋风(QB71)整理上传
'以下没有注明作者的都是我个人的积累
'如果你有什么功能需要实现而实现不了的而且是QB中
'没有的,那么你可以提出来
'如果你有QB中没有的函数,请将源代码发到我的邮箱:
'untill_wwy@163.com 中,标题注明(QB扩展函数库)
'并附上函数使用方法,调用参数,功能,返回值(请详细)
'我会注明作者且合并到这个函数库中
'
'请QB45置顶别锁定
'请各位爱好者不要在这里回帖,谢谢!!
'*****************************************************

(2005.7.6更新)请点击下面地址下载:
http://upload.programfan.com/upfile/200507060837132.rar

压缩文件包含3个文件

QB71EXT.LIB
QB71EXT.QLB
QB71EXT.BI

请用如下方法使用函数库
下载后请把文件解压缩
QB71EXT.LIB
QB71EXT.QLB
拷贝到你的QB目录下的 LIB 子目录下

QB71EXT.BI
拷贝到你的QB目录下的 SRC 子目录下

运行QB时使用/L参数装入:
QBX/l qb71ext
在程序中写上一行
'$INCLUDE: 'qb71ext.bi'
然后就可以象使用QB内部的函数一样使用本函数库了

*********************************************
以下是各函数的说明:

FUNCTION Dos.Version$ ()
获得DOS的版本号

FUNCTION Dos.ProPath$ (ProName$)
获得正在运中的程序的路径及文件名
参数:ProName$ 自变量

FUNCTION Dos.DrvLabel$ (Filespec$)
获得驱动器的卷标
参数:Filespec$ 驱动器字母

SUB vPrint (x%, y%, pStr$, BfClr%, BkClr%)
实现 PRINT 过程相同的功能,QB中PRINT过程打印第24,25
时屏幕会向上卷动,并且在打印前需要设置字符的前景色和
背景色,而这个过程是一次完成的,并且打印24,25行时屏幕不
会向上卷动,而且速度够快
参数:x%,y%  坐标
     pStr$  要打印的字符串
     BfClr% 前景色
     BkClr% 背景色

FUNCTION vDir$ (Filespec$, Attr%, Size&)
返回一个文件名
参数:Filespec$ 路径(可以使用通配符 "*")
Attr%=属性
      位0=1——只读  位1=1——隐含
      位2=1——系统  位3=1——卷标号
      位4=1——目录  位5=1——归档
Size& 尺寸

FUNCTION FindFile$ (Filespec$,FileName$)
在Filespec$路径下搜索完全匹配于FileName$文件名(不支持长文件名)
调用时参数:
Filespec$ 要搜索的路径
FileName$ 要搜索的内容
返回:
FindFile$= ""  没找到
         <>""  找到所有匹配内容并返回搜索结果列表,项目间用","字符隔开

FUNCTION FindDir$ (Filespec$,FileName$)
在Filespec$路径下搜索完全匹配于FileName$目录名(不支持长文件名)
调用时参数:
Filespec$ 要搜索的路径
FileName$ 要搜索的内容
返回:
FindDir$= ""  没找到
         <>""找到所有匹配内容并返回搜索结果列表,项目间用","字符隔开                   

Function Dos.IsFlo(N%)
判断是否有软驱
参数N=0 第一个软驱
     =1 第二个软驱
返回:0=没有软驱
     1=360K
     2=1.2M
     3=720K
     4=1.44M

FUNCTION Dos.DrvCount% ()
获得驱动器的个数(从C:开始)

SUB Dos.ReBoot (flag%)
重新启动系统(纯DOS方式下)
参数:Flag%=方式  
           0=冷启动
           1=热启动

FUNCTION dos.CDROM% (StarLetter%)
取CD-ROM状态
参数:StarLetter%自变量
返回:dos.CDROM =CD-ROM个数
     StarLetter=第一个CD-ROM的字母(C=2,D=3....)

(2005.7.9更新)请点击下面地址下载:
http://upload.programfan.com/upfile/200507090733816.rar

'SUB scr.save (x1%, y1%, x2%, y2)
'文本模式下保护屏幕背景(必须成对调用)
'参数:x1,y1,x2,y2 矩形坐标
'第一次调用时保存背景,第二次调用时恢复背景

'FUNCTION Scr.Byte$ (x%, y%)
'文本模式下取屏幕坐标x%,y%处一个字符
'参数:x,y 坐标

'FUNCTION Dig.Bin$ (N AS LONG)
'将N(长型)转成二进制字符串
'参数:N 长型整数  如果要转 B% 那么请先将 B% 成长型 M&=B%(使用变量时)
'例:Dig.bin$(15) 将转成 "1111"

'FUNCTION Dig.Str$ (N AS LONG)
'将N(长型)转成带千分位字符串
'参数:N 长型整数  如果要转 B% 那么请先将 B% 成长型 M&=B%(使用变量时)
'例:Dig.str$(65535) 将转成 "65,535"