关于结构扩展文件的自动生成
2.Keyboard为FoxBase提供的命令而非Keyboard()函数。
另外,CREAT界面中类型域既可以用类型字符串首字符“C、N、D、L、M”直接选择,也可以用适当数量(默认类型排列的顺序数减一)的空格符CHR(32)加回车符选择;“N”型字段的零小数位可以不输,即原串定义的“0”可不要;字段类型为默认“C”型时可直接回车;执行Keyboard命令之前宜先执行Clea type命令以清除键盘缓冲区。
由于使用现有的结构扩展文件的快速响应和CREAT交互式界面的不友好性,这种方法只适宜作为一种补救性的设计措施。若考虑到有可能无任何现有库利用的情况,建议应尽可能自备结构扩展文件。的确需要自动生成时宜在应用程序的初始化阶段完成为好。
下面提供一个完整的结构扩展文件自动生成子程序,定义串使用空格符加回车符选择字段类型,可指定工作区和结构扩展文件名。
程序在汉字FoxBase+2.10系统调试通过。
*程序名称:EXTDBF.PRG
*功能:自动生成结构扩展文件
*入口参数:AREA__<expC>指定工作区号(0~10)
*DBFNAME__<expC>指定结构扩展文件名
*调用方式:DO EXTDBF WITH AREA,DBFNAME
1 PARA AREA,DBFNAME
2 SET TALK OFF
3 SET ECHO OFF
4 SET SAFE OFF
5 SET BELL OFF
6 SET STAT OFF
7 SET SCOR OFF
8 INSTRING="FIELD-NAME"+CHR(13)+"10"+CHR(13);
+"FILED-TYPE"+CHR(13)+"1"+CHR(13);
+"FILED-LEN"+CHR(13)+CHR(32)+CHR(13)+"3"+CHR(13)+CHR(13);
+"FILED-DEC"+CHR(13)+CHR(32)+CHR(13)+"3"+CHRR(13)+CHR(13);
+CHR(13)+CHR(13)+CHR(13)
9 CLEA TYPE
10 KEYB (INSTRING)
11 OLD-AREA=LTRI(STR(SELE()))
12 SELE &AREA
13 CREA &DBFNAME
14 SELE &OLD-AREA
15 RETU