㈡.程序文件的建立与执行
1.程序文件的建立与修改
要建立程序文件,可以按以下步骤操作: ①打开文本编辑窗口;
②在文本编辑窗口中输入程序内容; ③保存程序文件。
要打开、修改程序文件,可按下列方法操作:
①在“文件”菜单中选择“打开”命令,弹出“打开”对话框 ②在“文件类型”列表框中选择“程序”;
③在文件列表框中选定要修改的文件,并单击“确定”按钮;
④编辑修改后,从“文件”菜单中选择“保存”命令或按Ctrl+W键保存文件。若要放弃本次修改,可从“文件”菜单中选择“还原”命令或按Ese键。
2.执行程序文件
菜单方式:
①从“程序”菜单中选择“运行”命令,打开“运行”对话框;
②从文件列表框中选择要运行的程序文件,并单击“运行”命令按钮。 采用此方式运行程序文件时,系统会自动将默认的盘和目录设置为程序文件所在的盘和目录。 命令格式:
DO<文件名>
该命令既可在命令窗口发出,也可以出现在某个程序文件中,这样就使得一个程序在执行的过程中还可以调用执行另一个程序。
当程序文件被执行时,文件中包含的命令将被依次执行,直到所有的命令被执行完毕,或者执行到以下命令:
①CANCAL:终止程序运行,清除所有的私有变量,返回命令窗口; ②DO:转去执行另一个程序;
③RETURN:结束当前程序的执行,返回到调用它的上级程序,若无上级程序则返回到命令窗口;
④QUIT退出Visual FoxPro系统,返回到操作系统。
㈢.简单的输入输出命令
1.INPUT命令
命令格式:
INPUT [<字符表达式>] TO <内存变量>
该命令等待用户从盘输入数据,用户可以输入任意合法的表达式。当用产以回车键结束输入时,系统将表达式的值存入指定的内存变量,程序继续运行。
功能注释:
①如果选用<字符表达式>,那么系统会首先显示该表达式的值,作为提示信息;
②输入的数据可以是常量、变量,也可以是更为一般的表达式。但不能不输入任何内容直接按回车键;
③输入字符串时必须加定界符,输入逻辑型常量时要用圆点定界(如。如.F.),输入日期时间型常量时要用大括号(如{^2001—03—011})。
2.ACCEPT命令
命令格式:
ACCEPT [<字符表达式>] TO <内存变量>
该命令等待用户从键盘输入字符串。当用户以回车键结束输入时,系统将该字符串存入指定的内存变量,程序继续运行。
功能注释:
①如果选用<字符表达式>,那么系统会首先显示该表达式的值,作为提示信息;
②该命令只能接收字符串。用户在输入字符串时不需要加定界符;否则,系统会把定界符作为字符串本身的一部分。
③如果不输入任何内容而直接按回车键,系统会把空串赋给指定的内存变量。
3.WAIT命令
命令格式:
WalT [<字符表达式>] TO <内存变量>] [WINDOW [AT <行>,<列>]] [NOWAIT][CLEARNOCLEAR][TIMEOUT <数值表达式>]
该命令显示字符表达式的值作为提示信息,暂停程序的执行,直到用户按任意键或单击鼠标时继续程序的执行。
功能注释:
①如果<字符表达式>值为空串,那么不会显示任何提示信息。如果没有指定<字符表达式>,则显示默认的提示信息“按任意键继续...”。
②<内存变量>用来保存用户键入的字符,其类型为字符型。若用户按的是Enter键或单击了鼠标,那么<内存变量>中保存的将是空串。若不选TO<内存变量>短语,输入的单字符不保留。
③一般情况下,提示信息被显示在Visual FoxPro主窗口或当前用户自定义窗口里。如果指定了WINDOW子句,则会出现一个WAT提示窗口,用以显示提示信息。提示窗口一般位于主窗口的右上角,也可用AT短语指定其在主窗口的位置。
④若选用NOWIA短语,系统将不等待用户按键,直接往下执行。
⑤若选用NOCLEAR短语,则不关闭提示窗口,直到用户执行下一条WAIT WINDOW命令或WAIT CLEAR命令为止。
⑥TIMEOUT子句用来设定等待时间(秒数)。一旦超时就不再等待用户按键,自动往下执行。
考核知识点二 程序的基本结构 ㈠.选择结构
支持选择结构的语句包括条件语句和分支语句。
1.条件语句
语句格式: IF<条件>
<语句序列1>
ELSE
<语句序列2> ENDIF
该语句根据<条件>是否成立从两组代码中选择一组执行。
2.分支语句
分支语句实现一种扩展的选择结构,它可以根据条件从多组代码中选择一组执行。 语句格式: DO CASE
CASE<条件1>
<语句序列1>
CASE<条件2>
<语句序列2>
CASE<条件n>
<语句序列n>
[OTHERWISE
<语句序列n+1>]
ENDCASE
语句执行时,依次判断CASE后面的条件是否成立。当发现某个CASE后面的条件成立时,就执行该CASE和下一个CASE之间的命令序列,然后执行ENDCASE后面的命令。如果所有的条件都不成立,则执行OTHERWSE与ENDCASE之间的命令序列,然后转向ENDCASE后面的语句。
㈡.循环结构
1.DOWHILE—ENDDO语句
语句格式:
DO WHILE<条件> <语句序列1> [LOOP]
<语句序歹U2> [EXIT]
<语句序列3>
ENDDO
2.FOR—ENDFOR语句
该语句通常用于实现循环次数已知情况下的循环结构。 语句格式:
FOR<循环变量>=<初值>TO<终值>STEP<步长>]
<循环体> ENDFOR┃NEXT
3.SCAN—ENDSCAN语句
语句格式:
SCAN<范围>]FOR<条件1>]┃[WHLE<条件2>] <循环体>
ENDSCAN
执行该语句时,记录指针自动、依次地在当前表的指定范围内满足条件的记录上移动,对每一条记录执行循环体内的命令
考核知识点三 多模块程序 ㈠.模块的定义和调用
PROCEDURE┃FUNCTION<过程名> <命令序列>
[RETURN<表达式>] [ENDPROC┃ENDFUNC] 模块调用的格式有两种: 格式1:使用DO命令
DO <文件名>┃<过程名> 格式2:在名字后加一对小括号:
<文件名>┃<过程名>()
㈡.参数传递
接收参数的命令有PARAMETERS和LPARAMETERS,它们的格式如下 PARAMETERS<形参变量1>,<形参变量2>?] LPARAMETERS<形参变量1>,<形参变量2>?] 调用模块程序的格式为:
格式1:DO<文件名><过程名>WTH<实参1>,<实参2>, 格式2:<文件名><过程名>(<实参1>,<实参2>,?])
㈢.变量的作用域
1.公共变量
在任何模块中都可使用的变量称为公共变量。公共变量要先建立后使用,公共变量可用PUBLC命令建立:
PUBLC<内存变量表>
该命令的功能是建立公共的内存变量,并为它们赋初值逻辑假 .F.。
公共变量一旦建立就一直有效,即使程序运行结束返回到命令窗口也不会消失。只有当执行CLEAR MEMORY、RE_LEASE、QUT等命令后,公共变量才被释放。
在命令窗口中直接使用而由系统自动隐含建立的变量也是公共变量。
2.私有变量
在程序中直接使用(没有通过PUBLIC和LOCAL命令事先声明)而由系统自动隐含建立的变量都是私有变量。私有变量的作用域是建立它的模块及其下属的各层模块。一旦建立它的模块程序运行结束,这些私有变量将自动清除。
3.局部变量
局部变量只能在建立它的模块中使用,不能在上层或下层模块中使用。当建立它的模块程序运行结束时,局部变量自动释放。局部变量用LOCAL命令建立:
LOCAL<内存变量表>
该命令建立指定的局部内存变量,并为它们赋初值逻辑假.F.。由于LOCAL与LOCATE前四个字母相同,所以这条命令的命令动词不能缩写。
局部变量要先建立后使用。
考核知识点四 程序调试 ㈠.调试器环境
调用调试器的方法一般有两种:
①选择“工具”菜单中的“调试器”命令 ②在命令窗口输入DEBUG命令。
㈡.设置断点
可以设置以下四种类型的断点:
类型1:在定位处中断:可以指定一代码行,当程序调试执行到该行代码时中断程序运行。 类型2:如果表达式值为真则在定位处中断:指定一代码行以及一个表达式,当程序调试执行到该行代码时如果表达式的值为真,就中断程序运行。
类型3:当表达式值为真时中断:可以指定—个表达式,在程序调试执行过程中,当该表达式值改成逻辑真.T.时,中断程序运行。
类型4:当表达式值改变时中断:指定—个表达式,在程序调试执行过程中,当该表达式值改变时中断程序行动。
㈢.调试菜单
“调试”菜单包含执行程序、选择执行方式、终止程序执行、修改程序以及调整程序执行速度等到命令。下面是各命令的具体功能。乱褪鹗窃令。
①运行:执行在跟踪窗口中打开的程序。如果在跟踪窗口里还没有打开程序,那么选择该命令将会打开“运行”对话框。当用户从对话框中指定一个程序后,调试器随即执行此程序,并中断于程序的第一条可执行代码上。
②继续执行:当程序执行被中断时,该命令出现在菜单中。选择该命令可使程序在中断处继续往下执行。