- 1、本文档共100页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Visual FoxPro 6.0程序设计 REPLACE 学号 WITH cNumbVar 在将此条语句加入到程序中后,因为这个程序的功能目前还只是对当前一条记录的“学号”字段进行处理,而不是对表中所有记录同时进行处理,这离要求还差一步。通过前面讲到的要对表中的记录进行全部或部分记录进行处理时,可以使用基于表的循环命令SCAN…ENDSCAN命令。将这些进行组装时要注意,因为前面的程序是基于内存变量编写的,现在是要将这些代码用于对表中记录进行处理,为此要将原字符串变量名cTest改为表中的字段名“学号”,最后的程序如下: SCAN cNumbVar=”” FOR II=1 TO LEN(学号) cCharacter=SUBSTR(学号,II,1) IF ISDIGIT(cCharacter) cNumbVar=cNumbVar+ ccharacter ENDIF ENDFOR REPLACE 学号 WITH cNumbVar ENDSCAN 返 回 5.3.6 整体测试 完成全部代码之后,在处理实际数据之前,必须用示例数据进行测试。运行此程序时,如果当前工作区中没有表打开,此程序将要求先打开一个表,如果先将STUDENT表打开后再运行此程序,则此程序可正常运行。 程序运行后屏幕显示的结果如图5-9所示: 图5-10 运行程序测试后STUDENT表中的部分数据 到此,程序设计基本完成,但为了使程序更可靠,需要进行下面的改进工作。 返 回 5.3.7 提高程序的可靠性 所谓可靠的程序是指一个程序不仅能够完成设计的功能,还可以预料到可能发生的错误并进行排错处理。上面的程序包含有二个假设,只有满足了这两个条件,程序才能正常运行。这两个假设是:在当前目录中有STUDENT表,或者有一个打开的表;同时,STUDENT表中有“学号”字段,或者当前工作区中打开的表中有“学号”字段。如果事先指定打开表,就会限制程序的使用范围,最好的办法是在运行程序时,由用户根据情况决定打开哪个表。 下面是改进后的程序,它具备了预料并排除错误的功能: ACCEPT “请输入要处理的表文件名” TO TABNAMESR LtableOK=.F. 此变量确定程序正常运行的条件之一是否成立。 初始值为.F.,假设条件不成立。 LfieldOK=.F. 此变量确定程序正常运行的另一条件是否成立。 TABNAME=”” 定义一个变量用于保存表文件名 IF AT(“.”,TABNAMESR)=0 TABNAME=TABNAMESR+”.DBF” 使输入的文件名带有扩展名 ENDIF DO WHILE .T. IF FILE(TABNAME) 判断所输入的文件名是否存在。 USE (TABNAME) 打开所输入的表文件 LtableOK=.T. 将表的标志置为“.T.” EXIT 跳出循环体 ELSE =MESSAGEBOX(“当前目录中没有所输入的表文件!”,64,”表名错误!”) USE ? 显示“打开”对话框,重新选择表 IF USED() 判断是否将一个表打开 EXIT 若有表打开也跳出循环体 ENDIF ENDIF ENDDO *这部分代码检查当前表的每一个字段,直到发现有一个名为“学号”的字段, *发现该字段存在后,设置LfieldOK为.T.,同时执行EXIT命令跳出循环体, *否则LfieldOK变量仍为.F.。 FOR II=1 TO FCOUNT() IF FIELD(II)=”学号”.AND.TYPE(“学号”)=”C” LfieldOK=.T. EXIT ENDIF ENDFOR IF LtableOK.AND. LfieldOK SCAN cNumbVar=”” FOR II=1 TO LEN(学号) cCharacter=SUBSTR(
文档评论(0)