在程序运行过程中,要随时接受用户输入的指令,才能够按照用户的要求完成各种操作。同时计算机也需要输出相应的提示信息,这样用户才能知道在什么时候输入什么命令。
格式:INPUT [<字符表达式>] TO <内存变量>
功能:该命令等待用户从键盘输入数据,可以输入任意合法的表达式。当按回车键结束输入时,系统将表达式的值存入指定的内存变量,程序继续运行。
说明:
(1)如果输入<字符表达式>,那么系统会首先显示该表达式的值,作为提示信息。
(2)输入的数据可以是常量、变量,也可以是一般的表达式。但不能没有任何内容而直接按Enter键。
(3)输入字符串时必须加定界符' '或" ",输入逻辑型常量时要用圆点定界(如.T.、.F.)。
【例5-3】根据输入商品的单价与数量进行计算。
****根据单价与数量来计算金额
CLEAR ALL
INPUT "商品名称:" TO MC
INPUT "单价:" TO DJ
INPUT "数量:" TO SL
? MC+"的总金额为:"+STR(DJ*SL,9,2)
RETURN
运行结果如下:
商品名称:“大米”
单价:20
数量:30
大米的总金额为:600.00
格式:ACCEPT [<字符表达式>] TO <内存变量>
功能:该命令等待用户从键盘输入字符串。当按Enter键结束输入时,系统将该字符串存入指定的内存变量,程序继续运行。
说明:
(1)如果选用<字符表达式>,那么系统会首先显示该表达式的值,作为提示信息。
(2)该命令只能接收字符串。在输入字符串时不需要加定界符,否则,系统会把定界符作为字符串本身的一部分。
(3)如果不输入任何内容而直接按Enter键,系统会把空串赋给指定的内存变量。
【例5-4】输入数据表名后打开数据库,然后进行查找。
******打开数据库并按姓名查找
CLEAR
ACCEPT "请输入需要打开的数据表名:" TO DBF_NAME
USE &DBF_NAME
ACCEPT "请输入查找人的姓名:" TO XM
LOCATE FOR 姓名=XM
DISPLAY
运行结果如下:
格式:
@ <行,列> [SAY <表达式>]|[GET <变量>
[RANGE <表达式1>,<表达式2>][VALID <条件>]
功能:在屏幕上指定的行、列位置输出指定表达式的值,并且将输入的数据保存到所指定的变量中。
说明:
(1)<行,列>用于指定在屏幕上输出的行、列位置坐标,行和列均应是数值表达式,并且系统将自动对其取整。
(2)SAY <表达式>子句是用来在屏幕上指定的行、列位置输出指定表达式的值。
(3)GET <变量>子句是用来在屏幕上指定的行、列位置输入数据给指定的变量,且必须与READ命令配套使用。
(4)RANGE<表达式1>,<表达式2>子句用来分别规定由GET子句输入的数值型或日期型数据的上、下界,这两个表达式的类型都必须与GET子句中变量的类型一致。
(5)VALID<条件>子句用来规定GET子句输入的变量值所需符合的条件,以便检测在执行READ操作时由键盘输入数据的合法性。
【例5-5】按照@…SAY|GET命令输入字段。
*****练习输入、输出命令的操作
CLEAR
USE XSDA
APPEND BLANK
@ 4,20 SAY "请输入学习的信息"
@ 6,15 SAY "编号:" GET 编号
@ 6,30 SAY "学号:" GET 学号
@ 8,15 SAY "姓名:" GET 姓名
@ 8,30 SAY "性别:" GET 性别VALID 性别$"男女"
@ 10,15 SAY "年龄" GET 年龄RANGE 18,50
READ
BROWSE
USE
顺序结构程序执行时,按程序中的先后顺序依次执行。在遇到如下任何一种情况时,程序将正常结束。
(1)遇到RETURN命令。
(2)遇到文件尾(EOF)。
(3)遇到另一个PROCEDURE或FUNCTION关键字。
【例5-6】在屏幕的指定位置显示系统日期和时间。
SET TALK OFF
CLEAR
@ 8,20 SAY "提醒您当前的时间" FONT "楷体",20
@ 10,10 SAY "现在是上班日期:"+DTOC(DATE()) FONT "隶书",20
@ 12,10 SAY "现在是北京时间:"+TIME() FONT "楷体",20
SET TALK ON
RETURN