《VFP二级机试课件.doc》由会员分享,可在线阅读,更多相关《VFP二级机试课件.doc(116页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章 数据与数据运算(8%)一、常量与变量考点1 常量常量用以表示一个具体的、不变的值。不同类型常量的书写格式不同。1数值型常量数据型常量即常数,用来表示一个数量的大小,由数字0-9、小数点和正负号组成。如:12.3 45 6.78 科学记数法,1.6E-12 表示:1.610-12数值型数据在内存中用8个字节表示。2货币型常量贷币型常量用来表示贷币值,其书写格式与数值型常量类似,但要加上一个前置的美元符号$。贷币数据在存储和计算时,采用4位小数。如果一个贷币型常量多于4位小数,那么系统会自动将多余的小数位四舍五入。如:$123.456789将存储为:$123.4568。贷币型常量没有科学记
2、数法形式,在内存中占用8个字节。3字符型常量字符型常量也称为字符串。其表示方法是用半角单引号、双引号或方括号把字符串扩起来。这里的单引号、双引号或方括号称为定界符。许多常量都有定界符。定界符虽然不作为常量本身的内容,但它规定了常量的类型以及常量的起始和终止界限。字符型常量的定界符必须成对匹配,不能一边用单引号而另一边用双引号。如果某种定界符本身也是字符串的内容,则需要另一种定界符为该字符串定界。注意:不包含任何字符的字符串(”)叫空串。空串与包含空格的字符串(” ”)不同。例:显示几个字符型常量。? 计算机, 123, 数据, ABX abc?学习, 字符串, , 表示方法在主窗口上的显示结果
3、如下:计算机 123 数据 ABX abc 学习 字符串 表示方法4日期型常量日期型常量有严格的日期格式和传统的日期格式两种格式,其定界符都是一对花括号。花括号内包括年、月、日三部分内容,各部分内容之间用分隔符分隔。常用的分隔符有斜杠/、连字符-、句点. 和空格等。日期型数据用8个字节表示。(1)严格的日期格式yyyy-mm-dd,这种格式的日期常量在书写时要注意:花括号内第一个字符必须是脱字符();年份必须是4位等;年月日的次序不能颠倒、不能缺省。 这种格式可以在任何情况下使用。用这种格式书写的日期常量能表达一个确切的日期。(2)传统的日期格式传统日期格式中的月、日各为2位数字,而年份可以是
4、2位数字,也可以是4位数字,如:10-08-01、10-08-01、10 08 2001等。这种格式的日期型常量要受到语句SET DATE TO 和 SET CENTURY TO 设置的影响。也就是说,在不同的设置状态下,计算机会对一个日期型常量作出不同解释。比如:10-08-01可以被解释为:2001年10月8日、2010年8月10日、2110年8月1日等。传统的日期格式只能在SET STRICTDATE TO 0 状态下使用。若在SET STRICTDATE TO1或2状态下使用传统日期格式,或使用的严格日期格式不对,系统将弹出错误的提示信息,要使用正确的日期格式。(3)影响日期格式的设置
5、命令5日期时间型常量日期时间型常量包括日期和时间两部分内容:,部分与日期型常量相似,部分的格式为:hh:mm:ssAM | PM6逻辑型常量考点2 变量变量值是能够随时更改的。变量名以字母、汉字和下划线开头,后接字母、数字、汉字和下划线构成。注意:字段名不能以下划线开头。VF中的变量分为字段变量和内存变量。其中字段变量就是表中的字段。内存变量是内存中的一块存储区域,变量值就是存放在这个存储区域里的数据,变量的类型取决于变量值的类型。内存变量的数据类型包括:C、N、Y、D、T、L六种。1简单的内存变量内存变量的赋值命令有两个格式:=STORE TO 每一个变量都有一个名字,可以通过变量名访问变量
6、。如果当前表中存在一个同名的字段变量,则在访问内存变量时,必须在变量名前加上前缀M.或M-,否则系统将访问同名的字段变量。2数组数组是内存中连续的一片存储区域,它由一系列元素组成,每个数组元素可通过数组名主相应的下标来访问。每个数组元素相当于一个简单变量,可以给各元素分别赋值。与简单内存变量不同,数组在使用之前一般要用DIMENSION或DECLARE命令显式创建,指定数组是一维数组还是二维数组、数组名和数组大小。数组大小由下标值的上、下限决定,下限规定为1。DIMENSION (, ), DECLARE(, ), 以上两种格式的功能完全相同。数组创建后,系统自动给每个数组元素赋以逻辑假.F.
7、考点3 内存变量常用命令1内存变量的赋值格式1:=格式2:STORE TO 功能:计算表达式的值并将表达式的值赋给一个或多个内存变量,格式1只能给一个变量赋值。2表达式值的表示格式1:?格式2:?功能:计算表达式表中的各表达式并输出各表达式值。 不管有没有指定表达式表,格式1都会输出一个回车换行符。如果指定了表达式表,各表达式值将在下一行的起始处输出。格式2不会输出回车换行符,各表达式值在当前行的光标所在处直接输出。3内存变量的显示格式1:LIST MEMORY LIKE TO PRINTER|TO FILE 格式2:DISP MEMORY LIKE TO PRINTER|TO FILE 功能
8、:显示内存变量的当前信息,包括变量名、作用域、类型和取值。先用LIKE短语只显示与通配符相匹配的内存变量。通配符包括*和?,*表示任意多个字符,?表示任意一个字符。例:LIST MEMORY LIKE A* 表示只显示变量名以A开头的所有内存变量。可选子句TO PRINTER用于在显示的同时送打印机,或TO FILE 用于存入指定文件名的文本文件中,文件的扩展名为.txt。LIST MEMORY表示一次性显示与通配符匹配的所有内存变量,如果内存变量多,一屏显示不下,则自动向上滚动。DISPLAY MEMORY表示分屏显示与通配符匹配的所有内存变量,如果内存变量多,显示一屏后暂停,按任意键之后再
9、继续显示下一屏。4内存变量的清除格式1:CLEAR MEMORY格式2:RELEASE 格式3:RELEASE ALL EXTENDED格式4:RELEASE ALL LIKE | EXCEPT功能:格式1表示清除所有内存变量。格式2表示清除指定的内存变量。格式3表示清除所有内存变量。在人机对话状态时其作用与格式1相同。如果出现在程序中,则应该加上短语EXTENDED,否则不能删除全局内存变量。格式4表示选取用LIKE短语清除与通配符相匹配的内存变量,选用EXCEPT短语清除与通配符不相匹配的内存变量。例如:RELEASE ALL EXCEPT A?表示将现有的内存变量中除去变量名为两个字符并
10、且以A开头的变量之外的其他内存变量清除。但如果出现在程序中,该命令将不能清除全局内存变量。例:在命令窗口中依次输入以下命令:CLEAR MEMORYDIMENSION y(2, 2)STORE xxx TO x1, y(1, 1)y(3)= 2001-03-23x2=$123.23LIST MEMO LIKE y*显示结果为:输入命令:RELEASE ALL LIKE y*X= 2001-08-22, 11: 30 PLIST MEMO LIKE x*显示结果为:5表与数组之间的数据传递数据表文件中的数据内容是以记录的方式存储和使用的,而数组是把一批数据组织在一起的数据处理方法。在实际应用开发
11、中,经常需要在两者之间进行数据的相互传递。VF为用户提供了相关的命令,可以方便地完成表与数组之间的数据交换。讲解课件:数组部分,本学期教材,第3章 VFP数据库及其操作.PPT二、表达式表达式是由常量、变量和函数通过特定的运算符连接起来的式子。在VFP编写的程序里,表达式几乎无所不在。表达式包括:l 单一的运算对象,如常量、变量或函数l 由运算符将运算对象连接起来形成的式子无论是简单的还是复杂的合法表达式,按照规定的运算规则最终均能计算出一个结果,即表达式的值。根据表达式值的类型,表达式可分为N、C、D、T、L等类型。大多数逻辑表达式是带比较运算符的关系表达式。考点4 数值、字符与日期时间表达
12、式1、数值表达式数值表达式又叫算术表达式,由算术运算符将数值型常量、变量及数值型函数连接起来形成,其运算结果仍然是数值型数据。算术运算优先级数值表达式中的算术运算符有些与日常使用的运算符稍有区别,算术运算符及其含义和优先级如下表所示:算术运算符及优先级优先级运算符说明1( )形成表达式内的子表达式2* 或 乘方运算3* / %乘、除运算、求余运算4+ -加减运算求余运算求余运算。求余运算%和取余函数MOD( )的作用相同。余数的正负号与除数一致。当表达式中出现*、/和%运算时,它们具有相同的优先级。例:? 15%4, 15%-4, mod(15, 4)结果为:3 -1 32、字符表达式由字符串
13、运算符将字符型数据连接起来形成,其结果仍是字符型数据。字符型数据只能进行两种运算(+、-),它们的优先级相同。+:首尾连接前后两个字符串形成一个新的的字符串;-:连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。例:a=Hello &尾部包含一个空格b=everyone!?a+b,len(a+b),a-b,len(a-b)结果为:Hello everyone! 15 Helloeveryone! 153、日期时间表达式日期时间表达式中可以使用的运算符也有“+”和“-”两个,其格式也有一定限制,如:不能用运算符“+”将两个日期连接起来。日期时间表达式的格式格式结果及类型 + D
14、型。指定若干天后的日期 + D型。指定若干天后的日期 - D型。指定若干天前的日期 - N型。两个指定日期相差的天数 + T型。指定若干秒后的日期时间 + T型。指定若干秒后的日期时间 - T型。指定若干秒前的日期时间 - N型。两个指定日期时间相差的秒数例:日期时间运算示例。 ?2009-05-10+20, 2009-05-10-2008-05-10上机演示,显示结果 ?2009-05-10 10:10:10 AM+10上机演示,显示结果考点5 关系表达式1、关系表达式关系表达式也称为简单逻辑表达式,它由关系运算符将两个对象连接起来形成的,即: 关系运算符的作用是比较两个表达式的大小或前后,
15、其运算结果是逻辑型数据。关系运算符及其含义如下表所示,它们的优先级相同。关系运算符运算符说明大于=等于、#、!=不等于=大于等于=字符串精确比较$子串包含测试运算符=和$仅适用于字符型数据。其它运算符适合于任何类型的数据,但除了日期型和日期时间型数据、数值型和货币型数据可以比较之外,其他情况下前后两个运算对象的数据类型要一致。数值型、贷币型数据比较按数值的大小比较,包括负号。例如:0 -1 $150$105 日期、日期时间型数据比较越早的日期或时间越小,越晚的日期或时间越大。例如:2009-05-102009-01-05逻辑型数据比较例如:.T. .F.子串包含测试格式: $ 功能:如果第1个
16、字符串是第2个字符串的一个子字符串,则结果为逻辑真.T. ,否则为逻辑假 .F. 。例:STORE 计算机 TO s1STORE 微型计算机 TO s2? s1$s2, s2$s1,(s1$s2)(s2$s1)结果显示为:2设置字符的排序次序当比较两个字符串时,系统对两个字符串的字符自左向右逐个进行比较,一旦发现两个对应字符不同,就根据这两个字符的大小决定两个字符串的大小。字符的大小取决于字符集中字符的排序次序,排在前面的字符小,排在后面的字符大。在中文VFP中,默认的字符排序次序名为PinYin,但可以重新设置。COLLATE整理格式 :SET COLLATE TO “”排序次序名必须放在引
17、号当中。可以是“Machine”、“PinYin”或“Stroke”。Machine(机器)次序:指定的字符排序次序与Xbase兼容,按照机内码顺序排序。在微机中,西文字符是按照ASCII码的值排列的:空格在最前面,大写ABCD字母序列在小写abcd字母序列的前面。因此,大写字母小于小写字母。汉字的机内码与汉字国标码一致。对常用的一级汉字而言,根据它们的拼音顺序决定大小。如:SET COLLATE TO “Machine”? ”a”A” 结果为.F.PinYin(拼音)次序:按照拼音次序排序。对于西文字符而言,空格在最前面,小写abcd字母序列在前,大写ABCD字母序列在后。如:SET COL
18、LATE TO “PinYin”? ”a”A” 结果为.T.注意:不管是哪种方式,只要是字符串的比较,均按机器次序进行比较。如:? ”abc”A” 结果为.F.Stroke(笔画)次序:无论中文、西文,按照书写笔画的多少排序。3字符串精确比较与EXACT设置l 在用双等号运算符(=)比较两个字符串时只有当两个字符完全相同(包括空格以及各字符的位置)时,运算结果才会是逻辑真.T.,否则为逻辑假.F.。l 在用单等号运行符(=)比较两个字符串时,运算结构与SET EXACT ON | OFF的设置有关 ON 先在较短字符串的尾部加上若干个空格,使两个字符串的长度相等,然后再进行精确比较。 OFF当
19、处于OFF状态时,只要右边字符串与左边字符串的前面部分内容相匹配,即可得到逻辑真.T.的结果,即字符串的比较因右面的字符串结束而终止。例:字符串比较与EXACT设置示例。SET EXACT OFF &系统默认状态,STORE ”计算机” TO s1STORE ”计算机 ” TO s2STORE ”计算机世界” TO s3? s1=s3, s3=s1, s1=s2, s2=s1, s2=s1SET EXACT ON &填充空格, 等长比较? s1=s3, s3=s1, s1=s2, s2=s1, s2=s1运行结果为:.F. .T. .F. .T. .F.F. .F. .T. .T. .F.4赋
20、值与相等比较的区别赋值命令: = 等号左边只能是一个内存变量名。命令的功能是计算等号右边表达式的值,并将计算结果赋给内存变量。命令执行前,内存变量可以存在,也可以不存在。命令执行后,内存变量的值与类型是表达式的值与类型。相等比较运算: = 等号左右两边都是表达式,当然也可以是变量。相等比较运算式本身是一个关系表达式,其运算结果也可以赋给一个内存变量。关系表达式不是命令,不能直接执行。要计算和显示表达式的值,可以使用问号命令。例: a=123 &赋值?a=456 &相当比较考点6 逻辑表达式1逻辑表达式逻辑表达式是由逻辑运算符将逻辑型数据连接起来形成的,其运算结果仍是逻辑型数据。逻辑运算符有三个
21、,即.NOT. , .AND. , .OR. 也可以省略两瑞的点,写成: NOT, AND, OR。其优先级顺序依次为:NOT, AND, OR。2运算符优先级有括号先做括号,先算术运算符、字符串运算符和日期时间运算符,最后执行逻辑运算符。例:不同运算符组成的表达式示例。? 122 AND 人 人民 OR .T.F.结果为:.F. ? (10%3=1) AND (15%2=0) OR 电脑!=计算机结果为:.T.三、常用函数 f(x) f(x, y)考点7 数值函数数值函数是指函数值为数值的一类函数。它们的自变量和返回值往往都是数值型数据。1绝对值和符号函数格式:ABS()SIGN()功能:A
22、BS( ) 返回指定的数值表达式的绝对值。SIGN( )返回指定数值表达式的符号。当表达式的运算结果为正、负和零时,函数值分别为1、-1和0。例:X=10?ABS(5-X), ABS(X-5), SIGN(5-X), SIGN(X-10)结果为: 5 5 -1 02求平方根函数格式:SQRT()3圆周率函数格式:PI()功能:返回圆周率(数值型)。该函数没有自变量。4求整数函数CEILING:最高限价,极限FLOOR:最低价格式:INT()CEILING()FLOOR()功能:INT( )返回指定数值表达式的整数部分。CEILING( )返回大于或等于指定数值表达式的最小整数。FLOOR( )
23、返回小于或等于指定数值表达式的最大整数。例:STORE 5.8 TO x?INT(X), INT(-X), CEILING(X), CEILING(-X), ;FLOOR(X), FLOOR(-X),5四舍五入函数格式:ROUND(, )功能:6求余数函数格式:MOD(, )功能:返回两个数相除后的余数。余数的正、负号与除数相同。如果被除数与除数同号,则函数值为两数相除的余数;如果异号,则函数值为两数相除的余数再加上除数的值。7求最大值和最小值函数格式:MAX(, ,)MIN(, ,)功能:MAX()计算各自变量表达式的值,并返回其中的最大值。MIN()计算各自变量表达式的值,并返回其中的最小
24、值。注意:自变量表达式的类型可以是数值型、字符型、货币型、双精度型、浮点型、日期型和日期时间型,但所有表达式的类型必须一致。例:?MAX(2, 12, 05), MIN(汽车, 飞机, 轮船)显示结果为:2 飞机考点8 字符函数1求字符串长度函数格式:LEN()功能:返回指定字符表达式值的长度,即所包含的字符个数。函数值为数值型。例:x=”中文Visual FoxPro6.0” ?LEN(X)显示结果为:202大小写转换函数格式:LOWER()UPPER()功能:LOWER( )将指定表达式值中的大写字母转换成小写字母,其他字符不变。UPPR( )将指定表达式值中的小写字母转换成大写字母,其他
25、字符不变。例:?LOWER(X1y2A*), UPPER(n=1)显示结果为:x1y2a* N=13空格字符串生成函数格式:SPACE()功能:返回由指定数目的空格组成的字符串。4删除前后空格函数格式:TRIM()LTRIM()ALLTRIM()功能:TRIM()返回指定字符表达式值去掉尾部空格后形成的字符串。LTRIM()返回指定字符表达式值去掉前导空格后形成的字符串。ALLTRIM()返回指定字符表达式值去掉前导和尾部空格后形成的字符串。例:STORE SPACE(1)+”TEST”+SPACE(3) TO SS?TRIM(SS)+LTRIM(SS)+ALLTRIM(SS)? LEN(SS
26、), LEN(TRIM(SS), ;LEN(LTRIM(SS), LEN(ALLTRIM(SS)显示结果为: TESTTEST TEST 8 5 7 4 5取子串函数格式:LEFT(,)RIGHT(,)SUBSTR(,)功能:6计算子串出现次数函数格式:OCCURS(,)功能:返回第一个字符串在第二个字符串中出现的次数,函数值为数值型。若第一个字符串不是第一个字符串的子串,函数值为0。例:STORE abracadabra TO s?OCCURS(a, s), OCCURS(b, s), ;OCCURS(c, s), OCCURS(e, s),显示结果为: 5 2 1 07求子串位置函数格式:
27、AT(,)ATC(,)功能:AT( )的函数值为数值型。如果是的子串,则返回值的首字符在值中的位置;若不是子串,则返回0。 ATC( )与AT( )功能类似,但在子串比较时不区分字母大小写。 第三个自变量用于表明要在值中搜索值的第几次出现,其默认值是1。例:STORE This is Visual FoxPro TO x?AT (fox, x), ATC(fox, x), AT(is, x, 3), AT(xo, x),显示结果为: 0 16 10 08子串替换函数格式:STUFF(,)功能:用值替换中由和指明的一个子串。替换和被替换的字符个数不一定相等。如果值是0,则相当于在中由指定的字符前
28、面插入。如果值是空串,则相当于在中删去由和指明的子串。例:STORE GOOD BYE! TO s1STORE MORNING TO s2?STUFF (s1, 6, 3, s2), STUFF(s1, 1, 4, s2),显示结果为:GOOD MORNING ! MORNING BYE!9字符替换函数格式:CHRTRAN(, )功能:该函数的自变量是三个字符表达式。当第一个字符串中的一个或多个相同字符与第二个字符串中的某个字符相匹配时,就用第三个字符串中的对应字符(与第二个字符串中的那个字符具有相同位置)替换这些字符。如果第三个字符串包含的字符个数少于第二个字符串包含的字符个数,导致没有对应
29、字符,那么第一个字符串中相匹配的各字符将被删除。如果第三个字符串包含的字符个数多于第二个字符串包含的字符个数,多余字符被忽略。例:x1=CHRTRAN(”ABACAD”, “ACD”, ”X12”)y1=CHRTRAN(”计算机ABC”, “计算机”, ”电脑”)z1=CHRTRAN(”大家好!”, “大家”, ”您”)?x1, y1, z1显示结果为:XBX1X2 电脑ABC 您好!10字符串匹配函数格式:LIKE(,)功能:比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真.T.,否则返回逻辑假.F.。中可以包含通配符*和?。*可与任何数目的字符相匹配,?可以与任何单个
30、字符相匹配。例:STORE abc TO xSTORE abcd TO y?LIKE (“ab*”, x), ?LIKE (“ab*”, y), ?LIKE (x, y), ;LIKE (“?b?”, x), LIKE (“Abc”, x), 显示结果为:.T. .T. .F. .T. .F.考点9 日期和时间函数日期和时间函数的自变量一般是日期型数据或日期时间型数据。1系统日期和时间函数格式:DATE() TIME() DATETIME()功能:DATE()返回当前系统日期,函数值为日期型。TIME()以24小时制的hh:mm:ss格式返回当前系统时间,函数值为字符型。DATETIME()返
31、回当前系统日期时间,函数值为日期时间型。例: ? DATE( ), TIME( ), DATETIME( )2年份、月份和天数函数格式:YEAR( | ) MONTH( | ) DAY( | )功能:YEAR( )从指定的日期表达式或日期时间表达式中返回年份(如2009)。MONTH( )从指定的日期表达式或日期时间表达式中返回月份。DAY( )从指定的日期表达式或日期表达式中返回天数。这三个函数的返回值都为数值型。例: STORE 2009-07-01 TO d? YEAR(d), MONTH(d), DAY(d)显示结果为:2009 7 13时、分和秒函数格式:HOUR() MINUTE(
32、) SEC()功能:HOUR( )从指定的日期时间表达式返回小时部分(24小时制)。MINUTE( )从指定的日期时间表达式中返回分种部分。SEC( )从指定的日期时间表达式中返回秒数部分。这三个函数的返回值都为数值型。例: STORE 2009-07-01 02:30:50 P TO t? HOUR(t), MINUTE(t), SEC(t)显示结果为:14 30 50考点10 数据类型转换函数数据类型转换函数的功能是将某一类型的数据转换成另一种类型的数据。1数值转换成字符串格式:STR(, )功能:将的值转换成字符串,转换时根据需要自动进行四舍五入。返回字符串的理想长度L应该是值的整数部分
33、位数加上值,再加上1位小数点。如果值大于L,则字符串加前导空格以满足规定的要求;如果值大于等于值的整数部分位数(包括负号)但又小于L,则优先满足整数部分而自动调整小数位数;如果值小于值的整数部分位数,则返回一串星号(*)。的默认值为0,的默认值为10。例:STORE -123.456 TO n? “n=”+STR(n, 8, 3)显示结果为:n=-123.456例:n=-123.456? STR(n, 9, 2), STR(n, 6, 2), STR(n, 3), STR(n, 6), STR(n)显示结果为: -123.46 -123.5 * -123 -1232字符串转换成数值格式:VAL
34、()功能:将由数字符号(包括正负号、小数点)组成的字符型数据转换成相应的数值型数据。若字符串内出现非数字字符,那么只转换前面部分;若字符串的首字符不是数字符号,则返回数值零,但忽略前导空格。例:STORE -123. TO xSTORE 45 TO ySTORE A45 TO z? VAL(x+y), VAL(x+z), VAL(z+y),显示结果为:-123.45 -123.00 0.003字符串转换成日期或日期时间格式:CTOD() CTOT()功能:CTOD( )将值转换成日期型数据。CTOD( )将值转换成日期时间型数据。 字符串中的日期部分格式要与SET DATE TO 命令设置的格
35、式一致。其中的年份可以用4位,也可以用两位。如果用两位,则世纪由SET CENTURY TO 语句指定。例:SET DATE TO YMDSET CENTURY ON &显示日期或日期时间时,用4位数显示年份SET CENTURY TO 19 ROLLOVER 51d1=CTOD(2001/03/18)t1=CTOT(2001/03/18+ +TIME( )?d1, t1, CTOD(50/01/01), CTOD(51/01/01)显示结果为:2001/03/18 001/03/18 10:31:54 PM 2050/01/01 1951/01/01这里,SET CENTURY ON语句指定
36、:大于等于51的两位数年份属于20世纪(19),而小于51的两位数属于年份属于21世纪(19+1)。4日期或日期时间转换成字符串格式:DTOC( | ,1 )TTOC( ,1 )功能:DTOC ( )将日期型数据或日期时间型数据的日期部分转换成字符串。TTOC ( )将日期时间型数据转换成字符串。结果字符串中日期部分的格式与SET DATE TO 语句的设置和SET CENTURY ON|OFF(ON为4位数年份,OFF为两位数年份)语句的设置有关。结果字符串中时间部分的格式受SET HOURS TO 12|24语句的设置影响。对DTOC()来说,如果使用选项1,则结果字符串的格式总是为YYY
37、YMMDD,共8个字符。对TTOC()来说,如果使用选项1,则结果字符串的格式总是为YYYYMMDDHHMMSS,采用24小时制,共14个字符。例:STORE DATETIME( ) TO t?t?DTOC(t), DTOC(t, 1), TTOC(t), TTOC(t, 1),显示结果为:5宏替换函数格式:&. 功能:替换出字符型变量的内容,即函数值是变量中的字符串。如果该函数与其后的字符无明确分界,则要用“.”作为函数结束标识。宏替换可以嵌套使用。例:STORE 学生 TO DBUSE &DB &相当于USE 学生XM=”姓名”?XM, &XM &相当于 ?XM, 姓名显示结果为:姓名 李
38、新考点11 测试函数在数据处理过程中,有时用户需要了解操作对象的状态。例如:要使用的文件是否存在,数据库的当前记录号、是否到达了文件尾、检索是否成功、某工作区中记录指针所指的当前记录是否有删除标记、数据类型等信息。尤其是在运行应用程序时,常常需要根据测试结果来决定下一步的处理方法或程序走向。1值域测试函数格式:BETWEEN(, , )功能:判断一个表达式的值是否介于另外两个表达式的值之间。当值大于等于且小于等于时,函数值为.T.,否则函数值为逻辑假.F.。如果或有一个NULL值,那么函数值也是NULL值。该函数的自变量类型既可以是数值型,也可以是字符型、日期型、日期时间型、浮点型、整型、双精
39、度型或货币型。但3个自变量的数据类型要一致。例:STORE .NULL. TO x & STORE NULL TO xSTORE 100 TO y? BETWEEN(150, y, y+100), BETWEEN(90, x, y)显示结果:.T. .NULL.2空值(NULL)测试函数格式:ISNULL()功能:判断一个表达式的运算结果是否为NULL值,若是NULL值则返回逻辑真.T. ,否则返回逻辑假.F.。例:STORE .NULL. TO x ? x, ISNULL(x)显示结果:.NULL. .T. 3”空”值测试函数格式:EMPTY()功能:根据指定表达式的运算结果是否为“空”值,返回逻辑真.T.或逻辑假.F.。首先要注意,这里所指的“空”值与NULL值是两个不同的概念。函数EMPTY(.NULL.)的返回值为逻辑假.F.。其次,该函数自变量表达式的类型可以是数值型、字符型、逻辑型、日期型等类型,不同类型数据的“空”值,有不同的规定,如下表所示。不同类型数据的“空”值规定数据类型“空”值数值型0字符型空串、空格、制表符、回车、换行货币型0浮点型0整型0双精度型0日期型空(如CTOD())日期时间型CTOT()逻辑型.F.备注字段空(无内容)NULL值,若是NULL值则返回逻辑真.T. ,否则返回逻辑假.F.。例:USE 学生?E