辽宁石油化工大学(1).ppt
辽宁石油化工大学,.,第三章数据与数据运算【掌握内容】,1.掌握常量、变量的类型,特别是数值变量与字符变量的区别,表中数据与数组的交换。,2.表达式的计算,关系表达式的比较,逻辑表达式的优先级。,3.掌握常用函数的使用及格式规则。,辽宁石油化工大学,【熟悉内容】,1.表达式的应用。,2.常用函数的使用。,【了解内容】,应该提前了解数据表的格式和简单用法。,【教学目标】,1.掌握最基本的表达式的使用及数据类型的区别。,2.掌握函数的使用以及在后续章节中的具体应用,辽宁石油化工大学,3.1.1常量,3.1常量与变量,返回,常量用以表示一个具体的、不变的值。不同类型常量的书写格式不同。在VisualFoxPro中,常量主要包括以下几种类型。1数值型常量,2货币型常量,3字符型常量,4日期型常量,5日期时间型常量,6逻辑型常量;,3.1.2变量,变量分为字段变量和内存变量,其中字段变量就是表中的字段。内存变量是内存中的一块存储区域,变量值就是存放在这个存储区域里的数据,变量的类型取决于变量值的类型。内存变量的数据类型包括字符型C、数值型N、货币型Y、日期型D、日期时间型T和逻辑型L。,辽宁石油化工大学,1简单的内存变量,每一个变量都有一个名字,可以通过变量名访问变量。如果当前表中存在一个同名的字段变量,则在访问内存变量时,必须在变量名前加上前缀M.或M-,否则系统将访问同名的字段变量。,,例,a46b65*65;store54*5toc,d字段名姓名“王明”,内存名m-姓名“王明”,(2)数组,与简单内存变量不同,数组在使用之前一般要用DIMENSION或DECLARE命令显示创建,规定数组是一维数组还是二维数组,数组名和数组大小。数组大小由下标值的上、下限决定,下限规定为1。在使用数组和数组元素时,应注意如下问题。,辽宁石油化工大学,1在一切使用简单内存变量的地方,均可以使用数组元素。,2在赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组的全部数组元素。,3在同一个运行环境下,数组名不能与简单变量名重复。,4在赋值语句中的表达式位置不能出现数组名。,5可以用一维数组的形式访问二维数组。,3.1.3内存变量常用命令,1内存变量的赋值,,格式一,,,格式二,STORETO,辽宁石油化工大学,(2)表达式值的显示,换车符。,在后直接输入。,,,格式二,格式一,,例,store5tox,y,z,x,y,z换一行,x,y,z在同一行,(3)内存变量的显示,,,格式二,格式一,LISTMEMORY[LIKE][TOPRINTERTOFILE],DISPLAYMEMORY[LIKE][TOPRINTER|TOFILE],辽宁石油化工大学,,(4)内存变量的清除,,,,,格式二,格式一,格式四,格式三,CLEARMEMORY,RELEASE,RELEASEALL[EXTENDED],RELEASEALL[LIKE|EXCEPT],(5)表中数据与数组数据之间的交换,将表的当前记录复制到数组。,,,格式二,格式一,SCATTER[FIELDS][MEMO]TO[BLANK],SCATTER[FIELDSLIKE|FIELDSEXCEPT][MEMO]TO[BLANK],辽宁石油化工大学,将数组数据复制到表的当前记录,GATHERFROM[FIELDS][MEMO],,,格式二,格式一,GATHERFROM[FIELDSLIKE|FIELDSEXCE][MEMO],,例,表中数据与数组数据之间的交换,将表的当前记录复制到数组,dimeaa11可以自动建立数组,use学生scattertoaa,aa1,aa2,aa3,aa4,aa5,aa6,aa7,aa8,aa9,aa10,aa11,listmemolikeaa,辽宁石油化工大学,3.2表达式,将数组数据复制到表的当前记录,gatherfromaause学生appendblankgatherfromaa*list,3.2.1.普通表达式,(1).数值表达式,1算术运算优先级2求余运算,例如1/60-3/56*18.45,例如154,15-4,例如store122tox,yz73xz,modx,z,xy-200,辽宁石油化工大学,同。“”首尾连接前后两个字符串形成一个新的字符串;“-”连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部,(2).字符表达式,由字符串运算符将字符型数据连接起来形成,其结果仍是字符型数据字符型数,据只能进行两种运算、-,它们的优先级相,例如a“hello“,b“everyone“ab,a-b,(3).日期时间表达式,日期时间表达式中可以使用的运算符也有“”和“-”两个,其格式也有一定的限制,不能任意组合,如不能用运算符“”将两个连接起来。,辽宁石油化工大学,,,3.2.2.关系表达式,1关系表达式,例如{2001-03-19}10,{2001-03-19}-{2000-03-19},{2001-03-19111010AM}-{2001-03-19101010AM},{2001-03-19101010AM}10,{2002-01-10}{2001-12-28},关系表达式通常也称为简单逻辑表达式,它是由关系运算符将两个运算对象连接起来而形成的,即。,例如STORE“计算机“TOs1,STORE“微型计算机“TOs2,s1s2,s2s1s1s2s2s1,辽宁石油化工大学,2设置字符的排序次序,当比较两个字符串时,系统对两个字符串的字符自左向右逐个进行比较;一旦发现两个对应字符不同,就根据这两个字符的排序序列决定两个字符串的大,例如SETCOLLATETO“Machine““a““abc“,“a““A“,“a““A“,“一““你好“,setcollateto“pinyin““a““abc“,“a““A“,“a““A“,“一““你好“,setcollateto“stroke“,“a““abc“,“a““A“,“a““A“,“一““你好“,辽宁石油化工大学,3字符串精确比较与EXACT设置,在用双等号运算符==比较两个字符串时,只有当两个字符串完全相同包括空格及各字符的位置时,运算结果才会是逻辑真.T.,否则为逻辑假.F.,例如setexactoffstore“计算机“tos1store“计算机“tos2store“计算机世界“tos3,s1s3,s3s1,s1s2,s2s1,s2s1,setexactons1s3,s3s1,s1s2,s2s1,s2s1,3.2.3.逻辑表达式,介绍逻辑表达式与运算优先级,辽宁石油化工大学,3.3常用函数,3.3.1数值函数,数值函数是指函数值为数值的一类函数,它们的自变量和返回值往往都是数值型数据。,1绝对值和符号函数,格式ABSSIGN,功能ABS返回指定的数值表达式的绝对值。SIGN返回指定数值表达式的符号。,2求平方根函数,格式SQRT,功能返回指定表达式的平方根,表达式的值不能为负。,辽宁石油化工大学,例如sqrt2*sqrt2,2*61/2,例如store-100toxsignx*sqrtabsx,3圆周率函数,格式PI,功能返回圆周率二,该函数没有自变量,4求整数函数,格式INTCEILINGFLOOR,功能INT返回指定数值表达式的整数部分。CEILING返回大于或等于指定数值表达式的最小整数。FLOOR返回小于或等于指定数值表达式的最大整数。,辽宁石油化工大学,例如store5.8tox,intx,int-x,ceilingx,ceiling-x,floorx,floor-x,5四舍五入函数,格式ROUND,,功能返回在指定位置四舍五入后的结果,指明四舍五入的位置。若大于等于0,表示的是要保留的小数位,若小于。,则表示整数部分的舍入位数,例如x345.345,roundx,2,roundx,1,roundx,0,roundx,-1,6求余数函数,格式MOD,,辽宁石油化工大学,功能返回两个数相除后的余数。余数的正、负号与除数相同。如果被除数与除数同号,则函数值为两数相除的余数;如果异号,则函数值为两数相除的余数再加上除数的值。,例如mod10,3,mod10,-3,mod-10,3,mod-10,-3,7求最大值和最小值函数,格式MAX,[,MIN,[,],功能MAX返回自变量中的最大值。MIN返回自变量中的最小值。,例如max2,12,05,min“汽车“,“飞机“,“轮船“,辽宁石油化工大学,1求字符串长度函数,格式LEN功能返回指定字符表达式值的长度,即字符个数。,例如x“中文visualfoxpro6.0“lenx,2大小写转换函数,格式LOWERUPPER,功能LOWER将指定表达式中的大写字母转换成小写字母,其他字符保持不变;UPPER将指定表达式中的小写字母转换成大写字母,其他字符保持不变。,例如lowerFDSFDgfsg2a*,upperhgfhgfhHGFHGF,3.3.2字符函数,辽宁石油化工大学,3空格字符串生成函数,格式SAPCE功能返回由指定数目的空格组成的字符串。,例如storespace1“test“space3toss,4删除前后空格函数,格式TRIMLTRIMALLTRIM,功能TRIM删除指定表达式尾部的空格。LTRIM删除指定表达式前端的空格。ALLTRIM删除指定字符串前端和尾部的空格,trimssltrimssalltrimss,lenss,lentrimss,lenltrimss,lenalltrimss,辽宁石油化工大学,5取子串函数,格式LEFT,RIGHT,SUBSTR,[,],功能LEFT从指定表达式左端截取一个指定长度的子串作为函数值。RIGHT从指定表达式右端载取一个指定长度的子串作为函数值。SUBSTR从指定表达式指定位置截取一个指定长度的子串作为函数值,若默认,则截取的子串表示从指定位置开始一直到字符串尾部,例如store“GOODBYE“toxleftx,2,substrx,6,2substrx,6,rightx,3,6计算子串出现次数函数,辽宁石油化工大学,格式OCCURS,功能返回第一个字符串在第二个字符串中出现的次数。,例如storeabracadabartosoccursa,s,occursb,s,occursc,s,occurse,s,7求子串位置函数,格式AT,[,]ATC,[,],功能AT返回第一个字符串的首字符在第_二个字符串中出现的位置。前提条件是第一个字符串必须是第二个字符串的子串,否则函数返回值为0。ATC功能与AT类似,但不区分字符串中字符的大小写。,例如store“thisisvisualfoxpro“toxat“fox“,x,atc“fox“,x,at“is“,x,3,at“xo“,x,辽宁石油化工大学,8子串替换函数,格式STUFF,,,,功能用的值替换中由和指定的一个子串,例如storegoodbyetos1storemorningtos2stuffs1,6,3,s2,stuffs1,1,4,s2,9字符替换函数,格式CHRTRAN,,,功能该函数的自变量是三个字符表达式。当第一个字符串中的一个或多个字符与第二个字符串中的某个字符相匹配时,应用第三个字符串中的对应字符相同位置替换这些字符如果,辽宁石油化工大学,第三个字符串包含的字符个数少于第二个字符串包含的字符个数,因为没有对应字符,那么第一个字符串中相匹配的各字符将被删除。如果第三个字符串包含的字符个数多于第二个字符串包含的字符个数,多余字符将被忽略。,例如x1chrtran“abacad“,“acd“,“x12“y1chrtran“计算机abc“,“计算机“,“电脑“z1chrtran“大家好“,“大家“,“您“x1,y1,z1,10字符串匹配函数,格式LIKE,,功能比较两个字符串对应位置_L的字符。其中中可包含通配符*和。*表示若干个任意字符,表示任意一个字符,辽宁石油化工大学,3.3.2日期和时间函数,1系统日期和时间函数,格式DATETIMEDATETIME,2求年份、月份和天数的函数,格式YEAR|MONTH|DAY|,辽宁石油化工大学,3求时、分和秒的函数,格式HOURMINUTESEC,3.3.4数据类型转换函数,数据类型转换函数的功能是将某一种类型的数据转换成另一种类型的数据。,辽宁石油化工大学,1数值转换成字符串函数,格式STR[,[,]],2字符串转换成数值函数,格式VAL,3字替串转换成日期或日期时间函数,格式CTOD,CTOT,4日期或日期时间转换成字符串函数,格式DTOC|[,1]TTOC[,1],5宏替换函数,格式&[.],辽宁石油化工大学,1值域测试函数,格式BETWEEN,,,2空值NULL测试函数,格式ISNULL,3“空”值测试函数,格式EMPTY,4数据类型测试函数,格式VARTYPE[,],3.3.5测试函数,辽宁石油化工大学,6表文件首测试函数,格式BOF[|],7记录号测试函数,格式RECNO[|],8记录个数测试函数,格式RECCOUNT[|],9条件测试函数,格式IIF,,,10记录删除测试函数,格式DELETED[|],