关于结构扩展文件的自动生成 四川 郑直 1996-11-22 1.DBFSTR串定义中字段名'FIELD-LEN'和'FIELD-DEC'均只有九个字符,其后面应再加上一个回车符CHR(13),光标才能从CREAT TEMP界面的字段名域移入类型域并正确续用其后的字符输入,否则不能生成正确的结构扩展库文件。 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__指定工作区号(0~10) *DBFNAME__指定结构扩展文件名 *调用方式: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