在FoxPro中放映位图文件

Author: 金寿日 Date: 1997-01-01

  很多看图软件(如SEA或QPEG等)都提供了图片的幻灯片播放功能,使我们能非常方便地查看图片文件。笔者在使用Foxpro 2.5 for Windows开发多媒体档案管理程序时,可利用系统提供的ADIR()函数以及APPEND FROM ARRAY等命令设计一个程序,对硬盘、软盘及光盘中任意目录下的位图文件进行幻灯片式播放。实现方法如下:
#3  1.建立一个文件名为SJK.DBF的数据库文件,库结构如下:
  字段 字段名 类型  长度
  1  WJM  C  12
  2  WJCD N  10
  3  WJRQ D  8
  4  WJSJ C  8
  5  WJSX C  5
#3  2.用ADIR()函数将指定目录中所有的位图文件的信息(包括文件名、长度、日期、时间和属性)存放在数组中。其命令格式为:
#2  ADIR(<Array,[,<expC1>,[,expC2>]])
  其中array为存放文件信息的数组名。数组中的列分别存放位图文件的5种信息(对应上述数据库的5个字段)。
#3  3.用APPEND FROM ARRAY命令自动把数组的每一行作为一个记录加入数据库SJK.DBF中,并根据数组的相应行对记录赋值。
#3  4.从数据库中的WJM字段中取值(位图文件名),用以显示位图文件。
  程序代码如下:
  程序文件名VIEW.PRG
  set talk off
  set safe off
  set escape on
  use sjk
  zap
  dirn=getd(′c:\′,′选择磁盘及目录′)&&返回磁盘及目录名
  wjzs=adir(ar-bmp,dirn-′*.bmp′)
  if empty(dirn) or wjzs=0
  wait[没有选择目录或当前目录中没有位图文件] wind
  retu
  endi
  appe from array ra-bmp
  rele ar-bmp
  clea
  go top
  on escape do fh  &&按ESC键停止并退出
  moreloop=.T.
  scan whil moreloop
  name=dirn-allt(wjm)
  @0,0say name bitmap center
  wait [] timeout 2   &&设置延迟时间为2秒
  clea
  ends
  retu
  proc fh
  moreloop=.F.
  retu
  此外我们还可利用数据库中的文件名、长度、日期、时间和属性等信息设计一个位图文件列表用以选择一个位图文件进行查看操作。