收藏 分享(赏)

FoxPro+for+Windows程序设计第2章.ppt

上传人:hyngb9260 文档编号:4529052 上传时间:2019-01-02 格式:PPT 页数:46 大小:189.50KB
下载 相关 举报
FoxPro+for+Windows程序设计第2章.ppt_第1页
第1页 / 共46页
FoxPro+for+Windows程序设计第2章.ppt_第2页
第2页 / 共46页
FoxPro+for+Windows程序设计第2章.ppt_第3页
第3页 / 共46页
FoxPro+for+Windows程序设计第2章.ppt_第4页
第4页 / 共46页
FoxPro+for+Windows程序设计第2章.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、2.1 常量、 变量、 函数和表达式 2.2 FoxPro的命令结构及规则,第 2 章 使用FoxPro的基础知识,返回主目录,第 2 章使用FoxPro的基础知识,2.1常量、 变量、 函数和表达式2.1.1常量在命令或程序语句中直接使用的数据叫做常量,程序中的常量在程序运行过程中, 其值始终保持不变。为了使人和计算机能够区分常量的类型和宽度, 有的常量需要加类型界定符。 1. 数值型常量数值型常量由数字、小数点和正负号组成, 是能够进行算术运算的数据。 数值型常量的整数部分和小数部分合起来最多能表示位有效数字。,1. 数值型常量数值型常量由数字、小数点和正负号组成, 是能够进行算术运算的数

2、据。数值型常量的整数部分和小数部分合起来最多能表示位有效数字。 数值型常量除了常规的表示方法外,还可以用“科学计数”法表示。科学计数法表示数值常量的一般格式是:尾数整数。其中,尾数是用常规方式表达的数值数据, 整数相当于以为底的整数次方,正或负的整数决定了小数点在尾数中向左或向右移动的位数。例如: 0.123456E4=1234.56 123456E-4=12.3456,2. 字符型常量字符型常量是由 、 或 等符号界定起来的字符串。 当上述某一种或两种界定符出现在字符串中时, 应改用其它符号作为字符串的界定符。例如, abc123、 abc123、 abc123是三个相同的字符型常量。 12

3、3.45、abc123、aaaa是正确的字符型常量。 123.45、abc123、aaaa是错误的字符型常量。 3. 日期型常量日期型常量用花括号界定, 年、 月、 日各用两位数字表示。 其中的月、 日应当是合理的位数, 公元年号超过两位时只取末两位。 空日期常量表示为/。 ,可以用日期格式设置命令改变日期格式。 例如, 在命令窗口打入并执行命令SET DATE TO YMD之后, 日期格式改变为年/月/日, 这种格式符合我们的日期表达习惯。 命令中的参数YMD还可以改写为MDY、 DMY, 它们分别对应月/日/年、 日/月/年格式。 在YMD格式下: 99/01/01、 99/1/1、 19

4、99/1/1 是正确的日期常量。 990101、 99/13/35、 99/01/01 是错误的日期常量。 目前销售的微机, 其硬件系统已经用位数表示公元年号了,即硬件已经不存在“千年虫”问题了。 早期推出的应用软件,例如FoxPro 2.5b for Windows仍然沿用两位数字表示年号。 但是,FoxPro 2.5b for Windows提供了可以将公元年号设置为位表示的命令(即SET CENTURY ON, 将在第章介绍)。,4. 逻辑型常量逻辑型常量只有两个, 用于表达真和假。 逻辑常量用圆点符界定, 被界定的常量可以是: T、 t、 Y、 y 、 F、 f、 N、 n之一。 其中

5、, .T.、 .t.、 .Y.、 .y.表示真值; .F.、 .f.、 .N.、 .n.表示假值。 ,2.1.2变量为了识别和使用计算机中存储的数据,需要用标识符标记数据的存储区域,这样的标识符叫做变量名,简称变量。 一个变量名既代表数据的存储区域,又代表该存储区域中存放的数据。 由于存储区域中的数据是可以随时改变的, 所以一个变量名所代表的数据也是可以变化的。 向变量中存或从变量中取数据的原则是:从变量所代表的存储区域取数,不改变原来的存储内容;向变量所代表的存储区域存放数据,将取代原来存储的数据。 FoxPro的变量可分为内存变量和字段变量。这里先介绍内存变量, 下一章再介绍字段变量。 内

6、存变量不依赖于数据库文件, 是独立存在于内存中的变量,使用时可临时定义。,内存变量不依赖于数据库文件, 是独立存在于内存中的变量, 使用时可临时定义。 内存变量可用于存放常量、程序执行过程中的中间结果或最终结果, 也可以作为控制变量控制程序的运行等。 内存变量又分为用户内存变量和系统内存变量。系统内存变量是由系统定义并赋值的,用户内存变量是用户定义并赋值的。 用字母打头的字母数字串作为用户内存变量的名称。如果构成内存变量名称的字符超过个半角字符,则只使用前个ASCII字符或前个汉字。因为系统内存变量的名称都是以下划线作为首字符的,所以用户命名的内存变量最好不以下划线为首字符。 ,内存变量有 6

7、 种类型, 分别为C型、 N型、D型、 L型、 W型和S型。 其中, W型内存变量是窗口型变量,待到介绍窗口技术(第章)时再作说明; S型内存变量是屏幕型变量, 用于保存当前屏幕所显示的内容。 不论在交互方式或程序方式下,经常要使用内存变量。 为此,下面先介绍几个对内存变量进行操作的命令。 1. 内存变量的定义和存取内存变量数据的命令为内存变量指定名称和类型,叫做内存变量的定义。 FoxPro的很多操作命令,都具有定义内存变量的功能。例如, 下面就是两个定义内存变量并赋值的命令: ,赋值命令: 内存变量名=表达式存数命令: STORE 表达式 TO 内存变量名表这两个命令的功能都是将表达式的值

8、赋给内存变量。不同的是, 赋值命令只能给一个变量赋值, 而存数命令可以把一个表达式的值同时赋给多个变量。 关于“表达式”的概念待后述,这里可以先把表达式理解为常量、 内存变量或由常量和内存变量组成的式子。两条命令都给所使用的内存变量指定了名称, 而内存变量的类型遵从表达式的数据类型。 注意, 赋值和数学中的等式是不同的概念,例如,是常见的一类赋值命令,但是如果把它理解成等式, 那么不论取什么值,这个等式都是不能成立的。 例如, 在命令窗口依次打入下列命令, 观察被赋值后的内存变量输出的内容。 ,专业=数学?专业班级=9501班?班级STORE 张兰 TO 姓名?姓名STORE 2 TO a,b

9、,c?2*a, b+c,说明: (1) ?和?都是输出命令, 其命令格式分别是: ?输出项目表 和 ?输出项目表其中?是换行输出命令, ?是不换行输出命令。 例如, 在上例中,执行了换行输出命令:?专业回车和 ?班级回车之后,在屏幕上显示的输出内容“数学”和“9501班”各占一行; 而执行了不换行输出命令?姓名回车之后, 在前面已输出的“9501班”后面输出“张兰”。 当表达式表中包含有多个表达式时, 各表达式之间要用逗号分隔。 (2) 规定在算术运算中, 用符号 * 表示乘号。 ,2. 显示内存变量的命令显示内存变量的命令除了上面已经介绍过的 ? 和 ? 命令之外,还有两个能同时显示多个内存

10、变量的命令, 其命令格式分别是: LIST MEMO LIKE 内存变量通配名 TO PRINER/TO FILE 文件名 DISPLAY MEMO WBLIKE 内存变量通配名 TO PRINER|TO FILE 文件名说明:(1) LIST MEMO是连续显示的, DISPLAY MEMO是分屏显示的。 ,(2) LIKE 内存变量通配名表示可以用通配符号指定所要显示的内存变量名。 通配符号有“?”和“*”, 如果变量名称中某一个字符的位置上使用了通配符“?”,则该位置上不论是什么字符,都是本命令中所指定的变量; 如果变量名称中使用了通配符“*”, 则该位置上不论是什么字符,也不论是几个字

11、符, 都是本命令中所指定的变量。 (3) TO PRINER|TO FILE 文件名用于将显示的内存变量在打印机上打印出来或存入指定的磁盘文件。当选择TO FILE 文件名时,则系统将会自动附加文件的扩展名.MEM。 例如,下面的各条命令都是显示内存变量的命令:,例如, 下面的各条命令都是显示内存变量的命令: STOR 123 TO a1,a2,a3,a4LIST MEMO DISPLAY MEMOLIST MEMO LIKE a? DISPLAY MEMO LIKE a?LIST MEMO LIKE a* DISPLAY MEMO LIKE a*LIST MEMO TO FILE m1 DI

12、SPLAY MEMO TO FILE m1上面最后一条命令将产生名为M1.MEM的磁盘文件。 ,3. 将内存变量保存到磁盘文件的命令当退出FoxPro时,用户内存变量被清除。为了能“永久”保存内存变量,可以把需要保留的内存变量保存到磁盘的 .MEM文件中。 其保存命令是: SAVE TO 内存变量文件名 ALL LIKE 内存变量通配名例如: STORE 123.0000 TO a1,a2,a3,a4,a5 (定义内存变量并赋值)SAVE TO m1 ALL LIKE a? (保存内存变量的命令)4. 从 .MEM文件中恢复内存变量的命令命令格式:RESTORE FROM内存变量文件名ADDI

13、,选择ADDI, 则保留当前用户内存变量, 追加所恢复的内存变量。 否则, 当前用户内存变量被清除。 例如, 执行命令 RESTORE FROM m1回车后, 原来已经定义过(或者说使用过)的所有内存变量都被清除。 5. 删除指定的内存变量的命令命令格式一: RELEASE 内存变量名1,命令格式二:RELEASE ALLLIKE 内存变量通配名 例如: RELEASE a1,a2(删除内存变量a1、 a2)RELEASE ALL LIKE a? (删除首字符是a、 第二个是任意字符的变量),6. 有关屏幕型内存变量的命令(1) 把当前屏幕显示内容存入型内存变量的命令: SAVE SCREEN

14、 TO 内存变量名(2) 用型内存变量恢复屏幕的命令: RESTORE SCREEN FROM 内存变量名例如, 启动FoxPro后,把启动屏幕存入内存变量S1,然后清除当前屏幕, 再用内存变量S1恢复显示启动屏幕。为此, 请依次打入命令: SAVE SCREEN TO S1CLEAR(这是一个清除当前屏幕显示内容的命令)RESTORE SCREEN FROM S1,2.1.3函数为方便用户, FoxPro提供了上百种标准函数(参见附录A)。这些函数为一些运算或检测系统状态提供了方便条件。 函数的一般形式为: 函数名(参数)函数名用于标明该函数的操作功能, 参数相当于函数的自变量。 每个函数都

15、有一个返回值(即结果值),因此,函数也是一种具有一定类型的数据。 使用函数时, 函数的参数应当符合规定的类型, 如果用户给定的参数类型不对,将会出现错误。 FoxPro的标准函数按功能可分为:数值运算函数、字符串处理函数、日期和时间函数、 数据类型转换函数、系统检测函数。一些函数的功能和用法将随时在有关命令中讲述,在第章还要集中介绍一部分常用函数。,这里仅列举几个函数应用的例子, 读者参照下面一部分函数的应用举例, 对附录A中其它函数的使用是会有所启发的。 1. 数值运算函数 1) 开平方函数SQRT(数值表达式)例如: ? SQRT(16) (输出)2) 取整函数INT(数值表达式)例如:

16、? INT(15.98) (输出),2. 字符串函数1) 计算字符串长度的函数LEN(字符表达式)例如: ? LEN(“this is a book.“) (输出15)2) 小写改大写的函数UPPER(字符表达式)例如: ? UPPER(“this is a book.“) (输出THIS IS A BOOK.)3. 日期和时间函数1) 返回系统日期的函数DATE()例如: ,? DATE() (输出计算机系统的日期)2) 返回日期中公元年号的函数YEAR(日期表达式)例如: ? YEAR(DATE()4. 类型转换函数1) 数值转换为字符串的函数STR(数值表达式, 长度, 小数位数)例如:

17、 ? str(12.45, 4, 1)+公斤 (输出12.5公斤)2) 字符串转换为数值的函数VAL(字符表达式),? str(12.45, 4, 1)+公斤 (输出12.5公斤)2) 字符串转换为数值的函数VAL(字符表达式)例如: ? VAL(12.5)+11.2 (输出23.7)FoxPro还具有用户自定义函数的功能。 自定义函数的定义和使用方法将在第章介绍。 ,2.1.4FoxPro表达式在FoxPro的命令中经常使用表达式, 表达式是用运算符号把同一类型常量、 变量或函数连接起来的有意义的式子。 下面首先介绍表达式中所使用的运算符号。 1. 表达式中的运算符1) 算术运算符算术运算符

18、用于对数值型数据进行算术运算, 其运算结果仍为数值型数据。下列符号为算术运算符: ( )分组优先运算符(一对圆括号), 、 正、 负号 * 或 乘方 *、 、 乘、 除、 求整除的余数 、 加、 减当上述运算符同时出现在一个表达式中时, 运算的优先顺序为 。 2) 字符型数据运算符字符型数据运算符是把两个字符型数据连接成一个字符型数据的运算符, 其操作对象和运算结果都是字符型数据。 它包含以下两种运算符: (1) 表示将两个字符型数据按原来的长度连接成一个字符串。 ,(1) 表示将两个字符型数据按原来的长度连接成一个字符串。 例如: ? “AB “CD“(注意第一个字符串的尾部有空格字符) 屏

19、幕显示: ABCD (连接后的字符串中保留了连接前的空格)(2) 表示将前一个字符型数据的尾部空格先移到后一个字符型数据之后,再与后一个字符型数据连接。 例如: ? “AB “CD“屏幕显示: ABCD (连接后的字符串为ABCD),屏幕显示: ABCD (连接后的字符串为ABCD)3) 日期型数据运算符(1) 表示两个日期型数据之间的减运算, 其结果是两个日期型数据相差的天数。 例如: ?99/01/01-98/01/01屏幕显示: 365?98/01/01-99/01/01屏幕显示: -365注意:两个日期型数据不能作加运算。 ,(2) 、 表示一个日期型数据和一个数值型数据的加、 减运算

20、, 其结果是一个日期型数据。 例如: ?99/01/01+60屏幕显示: 99 - 03 - 02?99/01/01-60屏幕显示: 98 - 11 - 024) 比较运算符比较运算符用于两个同类型表达式的比较运算, 运算结果为逻辑型数据。比较运算符包括: 大于 小于 ,等于 = 大于等于 或 不等于 精确等于 包含比较运算说明: (1) 上述比较运算符中, 、 、 、 、 、 均适用于数值型数据、 字符型数据及日期型数据的比较运算。对于字符型数据的比较运算是以字符的ASCII码值大小进行比较的, 即被比较的两个字符串从左至右进行对位比较;对于日期型数据的比较运算是按日期的前后顺序进行比较的(

21、早者日期小、 晚者日期大)。,、 两个运算符只能用于对字符型数据的比较运算。 对于逻辑型数据只能使用、 进行比较运算。 (2) 在对两个字符型数据作是否相等的比较运算时, 系统提供了两种比较方式: 精确比较与不精确比较。 用于字符串的非精确比较。即只要“”右边的字符串与左边的字符的前若干个字符相同,则认为两个字符串相等。 例如:?“ABCDE“AB“屏幕显示: .T.?“ABCDE“BACDE“屏幕显示: .F.,用于字符串的精确比较。 即只有“”右边的字符串与左边的字符串完全相同, 才认为两个字符串相等。 例如: ?“abcde“=“ab“屏幕显示: .F.(3) $是字符串的包含运算符。

22、包含运算的书写格式为字符串$字符串。 其功能是:字符串是否等于或被包含在字符串中。 当等于或被包含时, 结果值为.T.,否则为.F.。 例如: ?“AB“$“DCABE“,屏幕显示: .T.?“GI“$“GHI“屏幕显示: .F.比较运算符无优先次序, 按比较运算符出现的先后顺序进行比较运算。 5) 逻辑运算符逻辑运算符用于对逻辑型数据的运算,运算结果仍为逻辑型数据,使用逻辑运算符可以把若干个比较运算表达式组合成复合条件表达式。 逻辑运算符有如下三种: (1) NOT(逻辑非): 用于对逻辑值进行否定运算。 ,例如: ?NOT.T. 屏幕显示: .F.?NOT.F.屏幕显示: .T.(2) A

23、ND(逻辑与): 用于对两个逻辑值进行“与”运算。 其运算规则为: 只有二者都为真(.T.), 运算结果值才为真(.T.)。 例如: 姓名李强班级95信息,? 姓名李强.and. 班级95信息屏幕显示: .T. ? 姓名李强.and. 班级93信息屏幕显示: .F.? 姓名张强.and. 班级95信息屏幕显示: .F.(3) OR(逻辑或): 用于对两个逻辑值进行“或”运算。 其运算规则为: 只要二者之中有一个为真(.T.),运算结果值即为真(.T.)。 例如, 接上例: ? 姓名李强.OR. 班级93信息,屏幕显示: .T.? 姓名张强.OR. 班级95信息屏幕显示: .T.? 姓名张强.O

24、R. 班级93信息屏幕显示: .F.逻辑运算符的优先顺序为: (1)(2)(3)。 在同一个表达式中可以使用多种类型的运算符。 当多种运算符出现在一个表达式中时, 各类运算符之间的优先次序为: 括号算术运算符或字符串连接运算符比较运算符逻辑运算符,2. FoxPro表达式的类型一个表达式经过运算总可以得出一个结果值, 表达式的结果值是什么类型,则称该表达式是什么类型的表达式。 FoxPro的表达式有种类型。 1) 数值表达式数值表达式常用于数值计算。 例如, (60+75*2)/3。 一个数值型常量、 数值型变量或一个返回数值型数据的函数,是数值表达式的简单形式。 数值表达式和数学中的代数式具

25、有相同的计算功能, 但是在用计算机进行计算时,必须把代数式改写为数值表达式。代数式改写成对应的表达式时,应当遵循下列规则: (1) 表达式必须书写在一行之内, 所以,对应代数式中的分式, 在表达式中需要把分子和分母分别用圆括号括起来,用除法运算符号(/)代替分数线; 用乘方运算符号(*或)表示底数和指数的运算关系; 代数式中的根式改用乘方运算(其中开平方常使用函数SQRT(数值表达式))。 (2) 代数式中的函数名应采用FoxPro标准函数的对应名称, 函数的参数要用圆括号括起来。 (3) 改写为表达式时, 不能省略乘法运算符号, 只能用*和/表达乘法和除法运算。 例如, 代数式(-b+b2-

26、4ac)/2a对应的表达式为:(-b+sqrt(b2-4*a*c)/(2*a),2) 字符表达式字符表达式常用于字符型数据的连接运算。例如,“陕西省”“西安市”的连接运算结果为“陕西省西安市”。 一个字符型常量、字符型变量或一个返回字符型数据的函数,是字符表达式的简单形式。 3) 日期表达式日期表达式仅限于以下两种形式: (1) 两个日期型常量、变量、函数相减。 (2) 一个日期型常量、变量、函数加或减一个数值表达式。 一个日期型的常量、 日期型变量、 日期型函数, 是日期表达式的简单形式。 ,4) 逻辑表达式逻辑表达式常用于FoxPro命令的条件短语中。 例如: 英语=80 AND NOT

27、高数60一个逻辑型常量、逻辑型变量、返回逻辑型数据的函数, 是逻辑表达式的简单形式。 ,.FoxPro的命令结构及规则,2.2.1命令结构FoxPro的命令通常由“命令动词”和若干个“短语”或“参数”两部分组成。命令动词用于指定要执行的操作,短语或参数用于对操作对象作一些限定,例如限定操作对象的范围、条件等。 现以下面显示数据库文件中记录内容的命令为例, 说明命令的一般结构。 LIST|DISPLAY范围FIELDS 字段名表FOR 条件WHILE 条件; TO 去向ONOFF,1. 描述命令结构的语法符号及其含义(1) |表示用户可在“|”两边的动词、 短语或参数中选择使用其中的一个。 例如

28、, LIST及DISPLAY均是命令动词, 二者选一即可。它们的功能都是列表显示当前库文件的内容。但是,LIST是连续显示的, 而DISPLAY是分页显示的。 (2) 表示命令中的可选项。 选用时,则要输入方括号中的内容,但方括号 不是命令中的字符,输入命令时不能输入; 若省略可选项,则表示采用系统默认值。 (3) 表示用户可根据需要填写具体内容。 输入命令时, 尖括号不输入。 ,2. 命令中常用的短语或参数(1) 范围: 用于限定命令操作的记录范围, 即操作只对指定范围内的记录起作用。 范围的取值有以下几种: ALL: 范围为数据库中的所有记录。 RECORD n: 范围仅为库中的第n条记录

29、。 NEXT n: 范围为从当前记录开始向后的n-1条记录。 REST: 范围为从当前记录到库文件结尾的所有记录。 如果缺省该项, 则系统默认值因命令而异。,(2) FIELDS 字段名表:用于限定命令对哪些字段进行操作。其中FLELDS为该短语的关键字,默认值为所有字段。 (3) FOR 条件及WHILE 条件:这两个短语均用于限定命令只对满足条件的记录有效。不同的是: FOR条件:对给定范围内的所有满足条件的记录进行操作。 WHILE条件:表示从当前记录开始, 对满足条件的记录进行操作, 直到出现一个不满足条件的记录或超出给定范围时, 才终止操作。 注意:如果FOR与WHILE在一个命令中

30、同时出现, 则WHILE优先。 条件短语的缺省值是逻辑真值, 即指定范围内的所有记录都是操作对象。 ,(4) TO 去向:用于决定命令执行的结果输出到何处。 去向的取值可为: PRINT(打印机)、 SCREEN(屏幕)、 文件名等等。 缺省值为SCREEN。 (5) ON|OFF: 表示可供选择的开关,各命令中开关的含义不一定相同。在此命令中,它是记录号显示与不显示的开关, ON表示显示,OFF表示不显示,省略时的系统默认为ON。 ,2.2.2命令的书写规则(1) 任何命令必须以命令动词开始, 以回车键结束。 (2) 命令动词与短语、 短语与短语之间必须至少用一个空格来分隔, 一条命令中各个短语的书写次序可任意。 (3) 表示命令动词、短语的关键字和函数名称, 可以只取用前四个字符, 但若有后续字符仍然不允许出现拼写错误。 (4) 命令中的字符可以大写、 小写或大小写混写, 有的地方也可用汉字。 (5) 由于一条命令的长度没有限制, 所以当一条命令分写在多行时,应使用续行符“;”并加回车后,在下一行继续书写。 ,和其它程序设计语言不同,FoxPro的关键字(或称保留字)可以作为用户标识符使用。但是,有时系统不允许用AJ中的某一个字符作为数据库文件名(因为这个英文字母是数据库的别名)。 ,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > windows相关

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报