全国计算机等级考试二级教程——Visual FoxPro程序设计 格式2:STORE <表达式> TO <内存变量名表>
说明:?当内存变量与字段变量同名时,在内存变量名前加M.(或M->)区分
同名的字段变量。
?格式1一次只能给一个变量赋值;
格式2一次可以给多个用逗号分隔的变量赋值。
?在使用变量之前不需要定义,当使用赋值命令后,即建立了内存变量
?可以通过对内存变量重新赋值来改变其内容和类型。 例: ZF1=‘银川’
STORE 18.4 to A1,A2,A3 L1=.T. S1=$500.89
Store {^2004-09-15} to RQ1,RQ2 ?? ZF1,A1,A2,A3,L1,S1,RQ1,RQ2 2.数组
?定义:是内存中连续的一片存储区域,数组中的每个变量称为数组元素,每个数组元素的数据类型可以不相同,每个数组元素通过数组名及相应的下标来访问。 ?创建命令:
DIMENSION 〈数组名〉(〈下标上限1〉[,〈下标上限2〉])[,??] DECLEAR <数组名〉(〈下标上限1〉[,〈下标上限2〉]) [,??] 例: dimension x(8),y(3,4)
8个元素 12个元素
§3.1.3内存变量常用命令
1.内存变量的赋值 2.表达式值的显示 3.内存变量的显示 格式1:
LIST MEMORY [LIKE〈通配符〉][TO PRINTER|TO FILE 〈文件名〉] 格式2:
DISPLAY MEMORY [LIKE〈通配符〉][TO PRINTER| TO FILE〈文件名〉] 功能:显示内存变量的当前信息,包括变量名、作用域、类型、取值。
-21-
全国计算机等级考试二级教程——Visual FoxPro程序设计 说明:①选用LIKE只显示与通配符相匹配的内存变量。
②[TO PRINTER]显示的同时送往打印机;
[TO FILE] 存入给定文件名的文本文件.TXT中。
③ LIST滚动显示,DISP分页显示 4.内存变量的清除
格式1:CLEAR MEMORY
格式2:RELEASE<内存变量名表> 格式3:RELEASE ALL [EXTENDED]
格式4:RELEASE ALL [LIKE<通配符>|EXCEPT<通配符>] 5.表中数据与数组数据之间的交换 ①将表的当前记录复制到数组
格式1:SCATTER [F1ELDS<字段名表>] [MEMO] TO <数组名> [BLANK] 功能:复制表的当前记录的指定字段到数组元素,若不指定字段 ,则复制除备注型M和通用型G之外的全部字段。
格式2:SCATTER [F1ELDS LIKE<通配符>|FIELDS EXCEPT<通配符>][MEMO]TO<数组名>[BLANK]
功能:复制用通配符指定包括或排除的字段 ②将数组数据复制到表的当前记录。
格式1:GATHER FROM <数组名>[FIELDS <字段名表>][MEMO]
功能:将数组中的数据作为一个记录复制到表的当前记录中,若数组元素个
数多于记录中字段的个数,则多余部分被忽略。
格式2:GATHER FROM <数组名>[FIELDS LIKE<通配符>|FIELDS EXCEPT<通配符>][MEMO]
功能:复制用通配符指定包括或排除的字段
§3.2表达式
定义:同类型的各种数据(常量、变量、函数)通过同类型运算符按一定规则连接起来的式子。
?型:N、C、D、L?出表达式的值?值:按运算符的运算规则求§3.2.1数值、字符与日期时间表达式
一、数值表达式
定义:由算术运算符将数值型常量、变量、函数连接起来形成,运算结果仍
-22-
全国计算机等级考试二级教程——Visual FoxPro程序设计 为数值型。 ?算术运算符优先级
A.( ) > B. **或^ > C.*、/、% > D.+、_ ?求余运算
%或MOD( ) 求余或取模,余数的正负号与除数一致 二、字符表达式
定义:由字符运算符与字符型常量、变量、函数构成,运算结果仍为字符型 +:将两个字符串连接形成一个新字符串
-:连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符
串尾部
三、日期时间表达式
定义:由日期型运算符与日期型或数值型的常量、变量或函数构成。运算结
果为日期型或数值型。 日期运算符:+、-
对日期表达式的格式有一些限制,合法的如教材P64表3.3 ? {^2005-09-16,10:10:10AM}-{^2004-09-16,09:10:10AM}
§3.2.2关系表达式
定义:也称简单逻辑表达式,由关系运算符与其他表达式组成,其作用是比
较两个表达式的大小或前后,其运算结果是逻辑型。 1.形式:<表达式1><关系运算符><表达式2> 说明:①数值型和货币型数据比较
按数值的大小比较
②日期和日期时间型数据比较
早的日期或时间小,晚的日期或时间大
③逻辑型数据比较 .T. 大于.F.
④子串包含测试
测试前字符串是否为后字符串的子字符串 2.设置字符的排列次序
当字符串比较时,按从左向右顺序比较,对字符序列的排序设置友人机会话和命令两种方式
①在人机会话方式下设置
?Machine“工具”→“选项”→数据选项卡→排序序列→ ??PinYin?Stroke ?②命令方式设置
?机器??拼音?笔画?-23-
全国计算机等级考试二级教程——Visual FoxPro程序设计 SET COLLATE TO “<排序次序名>” 次序名 说明:
A.Machine: 按ASCⅡ码值排列
空格<“0”<“1”?<“9”<“A”<“B”?<“Z”<“a”<”b”?<”z”<任何汉字
B.PinYin:按照拼音次序排列 空格<小写字母<大写字母
C.Stroke : 无论中文、西文,按照书写笔画的多少排序。 3.字符串精确比较与EXACT设置 SET EXACT ON/ OFF
?set exact off 非精确比较
右边的字符串与左边字符串的前面部分内容相匹配,即可得到逻辑真 .T.
?set exact on 精确比较
当=时,现在较短字符串尾部加上若干个空格,使两个字符串长度相等,再比较
当==时,须两个字符串完全相同(包括空格及各字符的位置)
?Machine??PinYin?Stroke?§3.2.3逻辑表达式
定义:由逻辑运算符将逻辑数据连接起来的式子,其运算结果为逻辑值。 1.逻辑运算符: .NOT. 、.AND. 、.OR.(NOT>AND>OR)
2.运算符优先级: 算术运算符>字符运算符和日期时间运算符>关系运算符>逻辑运算符
例:? X<50 .OR. “A”>“B”
? (3*6<>20/4) .AND.(‘A’>‘B’)
? (‘微型计算机’==‘计算机’) OR (‘计算机’$‘计算机世界’) 年龄=20
性别 =“男” 婚否=.F. 学历=“大学”
? 年龄>18 .AND. (.NOT. (性别=“女”))
-24-

