2009-7-26 Visual FoxPro 6.0程序设计 1
第 2章 VFP的基本操作方法学习要点:
1、变量
2、表达式
3、运算符
2009-7-26 Visual FoxPro 6.0程序设计 2
第 2章 VFP的基本操作方法
2.2 数组
2.3 表达式与运算符退出
2.1 VFP内存变量的基本操作小结返回
2009-7-26 Visual FoxPro 6.0程序设计 3
2.1 VFP内存变量的基本操作
2.1.2 显示内存变量
2.1.3 保存内存变量退 出
2.1.1 对内存变量的赋值操作
2.1.4 删除内存变量
2.1.5 恢复内存变量返 回
2009-7-26 Visual FoxPro 6.0程序设计 4
内存变量的赋值操作和其它高级语言一样,必须先定义后使用
2.1.1 对内存变量的赋值操作
STORE <表达式 > TO <内存变量名表 >格式一命令动词 去向子句包含值的表达式 接收值的变量名表
STORE 0 TO AA,BB,CC 将数值 0赋给变量 AA,BB,CC
STORE "李磊 " TO NAME 将字符串“李磊”赋给
NAME
例格式二 <内存变量名 >=<表达式 >
接收值的变量名赋值操作符包含值的表达式例 A=.T,将逻辑真值赋给变量 A
返 回
2009-7-26 Visual FoxPro 6.0程序设计 5
2.1.2 显示内存变量格式一 LIST MEMORY [LIKE<内存变量名框架 >] [TO PRINTER[PROMPT]/TO FILE<文件名 >]
[NOCONSOLE]
功能,显示当前在内存中定义的自定义内存变量和系统内存变量,以及自定义菜单和自定义窗口的有关信息。
参数描述,LIST:为命令动词,表示此命令用以显示。
MEMORY,为子句,与 LIST一起构成复合命令,表示此命令用以显示内存变量。
LIKE<内存变量名框架 >,可以通过它有选择地显示内存变量和数组信息。
TO PRINTER[PROMPT],将显示结果在打印机上输出。
TO FILE<文件名 >,将显示结果输出到指定的文件中,
该文件为文本文件。
NOCONSOLE,不在屏幕上显示 。
2009-7-26 Visual FoxPro 6.0程序设计 6
格式二 DISPLAY MEMORY [LIKE <内存变量框架名 >] [TO
PRINTER[PROMPT]/TO FILE<文件名 >]
[NOCONSOLE]
功能,显示当前在内存中定义的自定义内存变量和系统内存变量,以及自定义菜单和自定义窗口的有关信息。
参数描述,DISPLAY,命令动词,表示分屏显示。
其它参数与 LIST相同。
LIST MEMORY与 DISPLAY MEMORY的区别
LIST MEMORY显示内存变量时不暂停,在屏幕上只保留最后一屏内存变量。
DISPLAY MEMORY在显示内存变量时,若内存变量数超过一屏,则在每显示一屏后暂停,按任意键后继续显示。
2009-7-26 Visual FoxPro 6.0程序设计 7
LIST MEMORY与 DISPLAY MEMORY命令示例在命令窗口中执行下条命令:
LIST MEMORY
屏幕显示:
因为 LIST
MEMORY命令在不带任何参数时将显示所有内存变量(包括系统内存变量),本例需要多屏显示,
因而在屏幕上只保留最后一屏的内容。
2009-7-26 Visual FoxPro 6.0程序设计 8
LIST MEMORY与 DISPLAY MEMORY命令示例在命令窗口中执行下条命令:
DISPLAY MEMORY
屏幕显示:
因为 DISPLAY
MEMORY命令在不带任何参数时将分屏显示所有内存变量(包括系统内存变量)。
此例中需要多屏显示,
因而在屏幕会一屏一屏的显示内存变量。
右图是第一屏的内容。
返 回
2009-7-26 Visual FoxPro 6.0程序设计 9
2.1.3 保存内存变量
SAVE TO <内存变量文件名 >/ <MEMO
备注字段名 >[ALL LIKE/ EXCEPT <内存变量名框架 >]
命令格式功能,它将内存中的部分或全部内存变量以文件的形式存入磁盘,文件名由 <内存变量文件名 >指定,文件扩展名的缺省值为,MEM。
参数描述,SAVE,命令动词,表示保存内存变量。
<内存变量文件名 >,指定保存内存变量和数组的内存变量文件。
<MEMO备注字段名 >,指定保存内存变量和数组的备注字段。
ALL LIKE<内存变量名框架 >],将符合 <内存变量名框架 >的那些变量存入指定的文件。
ALL EXCEPT <内存变量名框架 >],将不符合 <内存变量名框架
>的那些变量存入指定的文件。
2009-7-26 Visual FoxPro 6.0程序设计 10
SAVE TO VAR1 将除系统内存变量以外所有内存变量保存到 VAR1.MEM文件中。
即,AA,BB,CC,NAME,A 。
SAVE TO VAR2 ALL LIKE?A* 将第一个字符是任意字符,第二个字符是 A的所有内存变量保存到
VAR2.MEM文件中。即 AA,NAME 。
SAVE TO VAR3 ALL EXCEPT?A* 将自定义内存变量中第二个字符不是 A的所有内存变量保存到
VAR2.MEM文件中。即 BB,CC,A。
SAVE命令示例返 回
2009-7-26 Visual FoxPro 6.0程序设计 11
2.1.4 删除内存变量格式一 RELEASE <内存变量名表 >
功能,删除指定的内存变量。当 <内存变量名表 >为多个变量时,
变量名之间用“,”隔开。
格式二 RELEASE ALL [LIKE/EXCEPT <内存变量名框架 >]
功能,删除指定的内存变量。省略所有选择项时,则删除所有的内存变量。
格式三 CLEAR MEMORY
功能,删除当前内存中的所有内存变量。它和 RELEASE ALL
的效果完全相同。
说明,参数与前述相同。
2009-7-26 Visual FoxPro 6.0程序设计 12
删除内存变量示例在命令窗口中执行下列命令
RELEASE BB,CC
LIST MEMORY LIKE *
屏幕显示在命令窗口中继续执行下列命令
RELEASE ALL LIKE?A*
LIST MEMORY LIKE *
屏幕显示在命令窗口中继续执行下列命令
RELEASE ALL
LIST MEMORY LIKE *
屏幕显示 (空)
返 回
2009-7-26 Visual FoxPro 6.0程序设计 13
2.1.5 恢复内存变量如果需要使用已保存的内存变量时,可用下述命令恢复,
格式,RESTORE FROM <内存变量文件名 >
功能,它将 <内存变量文件名 >指定的内存变量文件中所保存的内存变量从磁盘读回内存重新使用。
参数描述:
RESTORE,命令动词,表示执行恢复操作。
FROM <内存变量文件名 >,指定恢复内存变量的来源。
[ADDITIVE],保留当前内存中的内存变量,将指定文件中的内存变量添加到当前内存变量之后。 若省略 ADDITIVE选择项,则内存中已有的内存变量全部释放,将指定文件中的内存变量调入内存 。
2009-7-26 Visual FoxPro 6.0程序设计 14
恢复内存变量示例在命令窗口中继续执行下列命令
RESTORE FROM VAR1
LIST MEMORY LIKE *
屏幕显示在命令窗口中继续执行下列命令
RESTORE FROM VAR2
LIST MEMORY LIKE *
屏幕显示在命令窗口中继续执行下列命令
RESTORE FROM VAR3 ADDITIVE
LIST MEMORY LIKE *
屏幕显示返 回
2009-7-26 Visual FoxPro 6.0程序设计 15
2.2 数组
2.2.2 定义数组
2.2.3 数组元素的赋值操作退 出
2.2.1 数组与下标变量返 回
2009-7-26 Visual FoxPro 6.0程序设计 16返 回
2.2.1 数组与下标变量下标变量,一组具有相同的变量名,而下标不同的变量。
数组,存储在一个变量中由单个变量名引用的有序数据集合。
数组中的每一个元素都可以通过一个数值下标被引用。在 Visual
FoxPro 中,一个数组中的数据不必是同一种数据类型。
S1下标变量变量名下标
S(1) 数组数组名 数组元素序号说明,由若干单下标变量组成的数组称为一维数组,由若干双下标变量组成的数组称为二维数组。在 Visual FoxPro 中,只允许使用一维数组或二维数组。
2009-7-26 Visual FoxPro 6.0程序设计 17
2.2.2 定义数组在使用数组时一定要先定义,有两条命令可以定义数组。
格式一格式二
DIMENSION <数组名 1>( <行 >[,<列 >]) [,<数组名 2> ( <行 >[,<列 >]) ……]
<数组名 1>( <行 >[,<列 >]) [,<数组名 2> ( <行
>[,<列 >]) ……]
功能,定义一个或多个一维或二维的内存变量数组。
参数描述,DIMENSION和 DECLARE为定义数组的命令动词。
<数组名 1>,指定数组的名称,其规定与内存变量名相同。
( <行 >[,<列 >]),定义数组的维数和大小 。
说明,1、数组的下标的起始值为1 。
2、同一数组中的数组元素可以有不同的数据类型 。
3、二维数组中各元素按行的顺序依次排列 。
2009-7-26 Visual FoxPro 6.0程序设计 18
4、每个数组占用一个内存变量 。
5、除了可以分别对数组元素赋值以外,也可对数组中的所有元素赋同一初值。
6,DIMENSION和 DECLARE功能完全相同,常用 DIMENSION。
DIMENSION <数组名 1>( <行 >[,<列 >]) [,<数组名 2> ( <行 >[,<列 >]) ……]
DIMENSION A ( 2,3 ),BB ( 4,8 )
定义数组,DIMENSION A(2,3),BB(4,8)
也可以一次只定义一个数组,DIMENSION A(2,3)
也可以只定义一维数组,DIMENSION A(6)
定义数组命令使用示例返 回
2009-7-26 Visual FoxPro 6.0程序设计 19
2.2.3 数组元素的赋值操作
STORE <表达式 > TO <数组名 /数组元素 > 格式一命令动词 去向子句包含值的表达式 接收值的数组名或元素
STORE 0 TO A 将数值 0赋给数组 A的所有元素
STORE "李磊 " TO A(2,1) 将字符串“李磊”赋给数组 A
的第 2行第 1列的元素。
例格式二 <数组名 /数组元素 >=<表达式 >
接收值的数组名或元素赋值操作符包含值的表达式例 A=.T,将逻辑真值赋给数组 A的所有元素返 回
2009-7-26 Visual FoxPro 6.0程序设计 20
2.3 表达式 与运算符
2.3.1 表达式的概念
2.3.2 运算符
2.3.3 运算符的优先级返 回 退 出
2009-7-26 Visual FoxPro 6.0程序设计 21
格式一 格式二
2.3.1 表达式 的概念表达式,由运算符和括号将常量、变量和函数连接起来的有意义的式子。
单个的常量、变量和函数都可以看作是最简单的表达式。
表达式按照运算结果的 类型 可以分为 四类
■ 字符型表达式 ( C) ■ 数值型表达式( N)
■ 逻辑型表达式 ( L) ■ 日期型表达式( D)
? <表达式列表 ><表达式列表 >
表达式显示命令功能,计算表达式的值,并将其显示到屏幕上。
区别,? 换行显示,不换行显示 。
返 回
2009-7-26 Visual FoxPro 6.0程序设计 22
2.3.2 运算符运算符,是对数据对象 (操作数 )进行操作运算的符号。
运算符以其结果的 类型 分组有如下五类
■算术运算符 ■关系运算符 ■逻辑运算符
■字符串运算符 ■日期运算符。
1、算术运算符
( 1) + 加号( N× N→N ) ( 2) - 减号( N× N→N )
( 3) * 乘号( N× N→N ) ( 4) / 除号( N× N→N )
( 5) ** 乘方( N× N→N ) ( 6) ^ 乘方( N× N→N )
( 7) % 余数( N× N→N )
第 1操作数类型 运算符 第 2操作数类型 运算结果类型返 回
2009-7-26 Visual FoxPro 6.0程序设计 23
关系运算符关系运算符有如下十种:
( 1) < 小于 ( N× N→L )( C× C→L )( D× D→L )
( 2) > 大于 ( N× N→L )( C× C→L )( D× D→L )
( 3) = 等于 ( N× N→L )( C× C→L )( D× D→L )
( 4) <= 小于或等于 ( N× N→L )( C× C→L )( D× D→L )
( 5) >= 大于或等于 ( N× N→L )( C× C→L )( D× D→L )
( 6) <> 不等于 ( N× N→L )( C× C→L )( D× D→L )
( 7) # 不等于 ( N× N→L )( C× C→L )( D× D→L )
( 8) != 不等于 ( N× N→L )( C× C→L )( D× D→L )
( 9) $ 属于 ( C× C→L )
( 10) == 精确等于 ( C× C→L )
关系运算符两边的数据类型必须相同,不同类型的数据无法进行有意义的比较 。
关系运算产生逻辑结果。即只能是逻辑“真”或逻辑“假”中的一种。
2009-7-26 Visual FoxPro 6.0程序设计 24
逻辑运算逻辑运算符有下列几个:
(1),NOT,逻辑非(单边运算符) ( L→L )
(2) ! 逻辑非(单边运算符) ( L→L )
(3),AND,逻辑与 ( L× L→L )
(4),OR,逻辑或 ( L× L→L )
字符运算符
(1) + 字符串精确连接 ( C× C→C )
(2) - 字符串非精确连接 ( C× C→C )
日期运算符
(1) + 加( D× N→ D)( N× D→ D)
(2) - 减( D× D→ N)( D× N→ D)
说明,日期加上数值得到将来的日期;数值加上日期得到将来的日期;日期减去数值得到过去的日期;两日期相减得到两个日期相差的天数。
返 回
2009-7-26 Visual FoxPro 6.0程序设计 25
2.3.3 运算符的优先级算术运算符 字符串运算符最高级一元运算符,+”和,-”(正负号)
**或 ^(乘方)
*,/、和 %(乘、除和余数)
+和 -(加和减)
+和 -(精确连接和非精确连接)
+和 -(加和减)
日期运算符关系运算符
<,>,=,<=,>=、
<>,#,!=,$,==
各运算符优先级相同次高级逻辑运算符
.NOT.或!(逻辑非)
.AND.(逻辑与)
.OR.(逻辑或)
最低级返 回
2009-7-26 Visual FoxPro 6.0程序设计 26
返 回小 结
1、对内存变量的赋值操作可以使用 STORE命令或 =进行。
2、显示内存变量可以使用 LIST MEMORY或 DISPLAY MEMORY
命令。前者为不分屏显示,后者为分屏显示。
3、内存变量可以使用 SAVE命令保存,也可以使用 RELEASE命令和 CLEAR命令删除,还可以使用 RESTORE 命令恢复。
4、数组必须先定义后使用,数组元素的赋值操作与内存变量的赋值操作基本相同。
5、表达式按其值的数据类型可以分为四类,字符型,数值型,
日期型,逻辑型 。
6、运算符按其运算的结果可以分为五类,算术运算符,关系运算符,逻辑运算符,字符串运算符,日期运算符 。
7、运算符的优先级有高低之分,最高的是 算术运算符、字符串运算符和日期运算符,其次是 关系运算符,最低的是 逻辑运算符 。