VFP表达式及应用.ppt
第2章 VFP 表达式及应用,表达式是由运算符连接常数、变量和函数等构成的运算式。在命令中使用表达式,可以完成计算任务。,数值型常数是整数或实数,可以用科学计数法表示。,由数字09、小数点与正负号组成,在内存中占8个字节,能表示120位数据。,数值型数据(N):,2.1.1数值型数据,字符型常数是用半角的单引号、双引号或方括号括起来的一串字符。,2.1.2字符型数据,由英文字母、汉字或数字等符号组成的一串字符。半角字符占一个字节,一个汉字或全角字符占两个字节。,字符型数据(C):,定界符本身不作为字符型常数的内容,当定界符作为字符串本身的内容时,就必须使用另一种定界符作为字符型常数的标志。,字符串长度是指字符串中所含字符个数。,2.1.2字符型数据,日期型数据(D):,2.1.4日期型数据,日期型常数用一对大括号“”括起来。其中包含年、月、日三部分内容,各部分内容之间可以用半角的斜杠(/)、连字号(-)、小数点(.)或空格等分隔符进行分隔。,占8个字节。,2.1.4 日期型数据,Set Strictdate To 0,Set Date Ansi,Set Century On,X=11.10.01,?X,日期型常数有传统和严格两种格式。,逻辑型常数只有真和假两种值。定界符由前后2个半角小圆点“.”组成,2.1.6 逻辑型数据,表示逻辑判断的结果,非此即彼。,?.T.,.t.,.Y.,.T.T.T.,?.F.,.n.,.N.,.F.F.F.,2.2 简单内存变量,变量分为:内存变量和字段变量 两类,允许内存变量与当前表中的字段(变量)重名,在引用内存变量时,需要加前缀“M.”或“M-”。例:M.学号表示引用内存变量学号的值,赋值命令为内存变量首次赋值时,就创建了内存变量,既规定了变量名,又指定了变量的值。所赋值的类型决定了内存变量的数据类型。,2.2.1 内存变量赋值,例,命令格式2:?,先计算“表达式表”中每个表达式的值,再依次输出这些值,命令格式1:?,2.2.3 输出表达式值,?总分,71+16,总分 87,?分,分,2.3.1 数值运算符,优先级,当两个异符号数求余时,结果为第一个数除以第二个数的余数再加上第二个数。例:8%-3 的结果是-1,-8%3 的结果是1.,2.3.2 常用数值型函数,函数作为一种特殊的表达式,可分为系统函数和用户自定义函数。系统函数也称为标准函数,是VFP系统定义的函数,可以直接使用。数值型函数指函数值为数值型。,3.求平方根函数:Sqrt(),2.3.2 常用数值型函数,返回值是数值表达式值的算术平方根。,函数值是数值表达式的整数部分,而不是四舍五入。,2.3.2 常用数值型函数,Int():,9.求整函数,返回值是字符表达式值中所含字符的个数,空格也计算在内。每个汉字占两个字符位置。,12.求字符串长度:Len(),2.3.2 常用数值型函数,例,22.字符转换成数值:Val(),对字符表达式的值去掉首部空格后,从左向右将可转换的符号转换成数值型数据,作为函数的返回值。,2.3.2 常用数值型函数,例,2.4 字符型表达式,2.4 字符型表达式,+将两个字符型数据依次连接起来,构成一个新的字符型数据。,?“学”+“生”,学,生,直接连接两个字符串,2.4 字符型表达式,+:将两个字符型数据依次连接起来,构成一个新的字符型数据。,?“学”+“生”,学,生,直接连接两个字符串,2.4 字符型表达式,-:先将第一个字符型数据的尾部空格移动到第二个字符型数据的尾部,再依次连接成一个新的字符型数据。,?“学”-“生”,学,生,第一个字符串的尾部空格放到最后,2.删除(字符表达式中的)空格函数:例 Ltrim():删除左端空格 Trim()Rtrim()Alltrim():删除两端空格,1.生成空格函数:Space(数值表达式)利用此函数,可以产生若干个空格组成的字符串。空格个数由数值表达式的整数值决定。,2.4.2 常用字符型函数,3.取左子串:Left(,),2.4.2 常用字符型函数,从值的最左端第一个字符开始,取指定字符作为函数值。例,5.取任意子串函数Substr(,),从 字符表达式 值的 起始位置 取指定 长度 的子串作为函数值。,例:X=”2008年北京奥林匹克运动会”?Substr(X,7,6)+Substr(X,19,2)+Substr(X,23,2),2.4.2 常用字符型函数,12.数值转换成字符函数 例,Str(,),11.系统时间函数:Time(),2.4.2 常用字符型函数,函数返回值为字符型数据。值为系统当前时间,采用24小时制。,14.判断数据类型函数 例Vartype()Type(),13.日期转换成字符:Dtoc(),2.4.2 常用字符型函数,函数值的格式与Set Date和Set Century的设置有关。例,系统日期(时间)函数:Date(),例 例,由”+”或”-”运算符连接日期或数值型数据所构成的运算式。,2.5 日期型表达式,2.6 关系表达式,采用关系运算符将同类型数据连接起来,以便进行比较。关系运算的结果是逻辑型数据:当关系成立时,运算结果为真(.T.);否则运算结果为假(.F.),运算符:、=、#、=、=、$,2.6 关系表达式,比较规则:依据数学上的比较规则;较后日期(时间)较前日期(时间);逻辑真(.T.)逻辑假(.F.)。,精确比较规则:Set Exact On 例非精确比较规则:Set Exact Off 例,2.6.1 字符型数据的比较规则,字符型数据的比较结果取决于当前的比较规则和 排序次序。,排序次序:1.Machine:机内码 2.Pinyin:拼音 3.Stroke:笔画,方法二:在命令窗口或程序中使用VFP命令:Set Collate To“”,设置方法:方法一:工具菜单选项数据选项卡从“排 序序列”下拉列表框中选择排序次序 设置为默认值确定。,2.6.2 字符数据的“排序次序”例,2.6.3 子串包含运算,格式:$,若字符表达式2的值完整地包含字符表达式1的值,则运算结果为真(.T.);否则,运算结果为假(.F.)。例,或运算:.Or.,与运算:.And.,非运算:.Not.,2.7.1 逻辑运算符,优先级,文件存在函数:File(),2.7.2 常用逻辑型函数,同一个表达式中,允许含有多种运算符。各类运算符的优先级别由高到低依次为:数值运算、字符运算、日期运算和日期时间运算关系运算逻辑运算。,2.7.3 表达式综述,=2,=4,.F.,.F.,.F.,例如:2*(3-1)5.Or.D=ABC,2.8 宏替换及其使用,&.,应用:,3.作为表达式的一部分 例,4.替换文件名 例,命令格式:Dimension(,),(,列数),数组是一组变量名相同而下标不同的内存变量。每个内存变量称为数组元素。每个数组中最多可以含65000个元素,同一个数组中各个元素的数据类型可以不同。在使用一个数组之前,必须先对其进行声明。声明后的每个元素的初值都是.F.。,2.9.1 声明数组,例,2.9.2 使用数组元素,引用格式:(,)。,在对数组名赋值时,将赋给数组中每个元素相同的值;,引用数组名时,实际上是引用数组中的第1个元素。,例,例,第 2 章 结 束谢 谢!,