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



一元运算符, +”和,-”(正负号)
**或 ^(乘方)
*,/、和 %(乘、除和余数)
+和 -(加和减)
+和 -(精确连接和非
精确连接)
+和 -(加和减)
日期运算符
关系运算符
<,>,=,<=,>=、
<>,#,!=,$,==
各运算符优先级相同



逻辑运算符
.NOT.或!(逻辑非)
.AND.(逻辑与)
.OR.(逻辑或)



返 回
2010-5-20 Visual FoxPro 6.0程序设计 26
返 回
小 结
1、对内存变量的赋值操作可以使用 STORE命令或 =进行。
2、显示内存变量可以使用 LIST MEMORY或 DISPLAY MEMORY
命令。前者为不分屏显示,后者为分屏显示。
3、内存变量可以使用 SAVE命令保存,也可以使用 RELEASE命
令和 CLEAR命令删除,还可以使用 RESTORE 命令恢复。
4、数组必须先定义后使用,数组元素的赋值操作与内存变量的
赋值操作基本相同。
5、表达式按其值的数据类型可以分为四类,字符型, 数值型,
日期型, 逻辑型 。
6、运算符按其运算的结果可以分为五类,算术运算符, 关系运
算符, 逻辑运算符, 字符串运算符, 日期运算符 。
7、运算符的优先级有高低之分,最高的是 算术运算符、字符串
运算符和日期运算符,其次是 关系运算符,最低的是 逻辑运算符 。