Visual FoxPro的数据与表达式_第1页
Visual FoxPro的数据与表达式_第2页
Visual FoxPro的数据与表达式_第3页
Visual FoxPro的数据与表达式_第4页
Visual FoxPro的数据与表达式_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章VisualFoxPro的数据与表达式2/3/20231第二章VisualFoxPro的数据与表达式

2.1VisualFoxPro的数据类型、常量和变量 2.2VisualFoxPro的命令和函数 2.3VisualFoxPro表达式2/3/202322.1数据类型、常量和变量2.1.1VisualFoxPro的数据类型VisualFoxPro6.0向用户提供了14种数据类型。其中:既适用于内存变量又适用于字段变量的有:1.字符型数据(Character)2.货币型数据(Currency)3.数值型数据(Numeric)4.逻辑型数据(Logical)5.日期型数据(Date)6.日期时间型数据(Datetime)2/3/202332.1数据类型、常量和变量VisualFoxPro6.0提供的数据类型中只适用于内存变量的有:对象型数据(Object):Windows应用程序中生成的对象,用O表示。2/3/202342.1数据类型、常量和变量VisualFoxPro6.0提供的数据类型中只适用于字段变量的有:1.浮点型数据(Float)2.双精度型数据(Double)3.整数型数据(Integer)4.备注型数据(Memo)5.通用型数据(General)6.字符型数据(二进制)7.备注型数据(二进制)2/3/202352.1数据类型、常量和变量2.1.2常量常量是指值在程序执行过程中保持不变的数据。

1.数值型常量:包括带小数点常量和不带小数点的常量。例:3.14,17,1.23E5。2.字符型常量:用单引号、双引号、方括号等定界符括起来的数据。例:'123',"A",[数据库]。

注意:空格串""和空串""的区别。使用字符型常量必须加定界符,而且定界符必须成对出现。 空格串"",串长>0。五个空格,串长为5。 空串"",串长=0。 "ABC'DEF'GH" "ABC"DEF"GH"

注意:如果使用2对以上的定界符,内外定界符必须不同。2/3/202362.1数据类型、常量和变量2.1.2常量常量是指值在程序执行过程中保持不变的数据。

逻辑型常量:只有两个值逻辑真和逻辑假。逻辑真值:.T.,.t.,.Y.,.y.逻辑假值:.F.,.f.,.N.,.n.日期型常量:必须用一对花括号将数据括起来。例:{^2005-9-5}日期时间型常量:也必须用一对花括号将数据括起来。例:{^2005-9-510:12:25a}2/3/202372.1数据类型、常量和变量2.1.3变量变量是指其值在程序的执行过程中可以改变的数据。1.变量的命名(变量名是用来标识变量的符号)由字母(汉字)、数字和下划线组成,但必须以字母(汉字)或下划线开头,中间不能有空格。长度为1~128个字符,每个汉字占2个字符。不要与系统保留字(命令名、函数名等)同名。不区分大小写:A1即a1如ABC_、class1、课程名称等都是合法的变量名;而1X、A–B、“工资”、编号等都是非法的变量名。2/3/202382.1VisualFoxPro的常量和变量2.1.2变量2.变量的分类字段变量(存放在表文件中的字段)内存变量一般内存变量(存放在内存单元的单个数据)系统内存变量数组变量(存放在内存单元组的多个数据)变量2/3/202392.1VisualFoxPro的常量和变量2.1.2变量2.变量的分类字段变量是指表中的字段。它是在建立表结构时定义的,修改表结构时可重新定义或增删字段变量。字段变量名与内存变量同名时,字段变量名优先级高于同名的内存变量。如有字段变量A1与内存变量A1。在使用内存变量时,可写成“M.A1”或“M->A1”,以示区别。2/3/2023102.1VisualFoxPro的常量和变量2.1.2变量2.变量的分类字段变量与内存变量的区别。 定义方式不同。 字段变量在建立表结构时定义;而内存变量使用赋值命令进行定义。使用方式不同。 字段变量在使用前必须用命令(USE)打开;内存变量定义后就可使用。生存期不同。 字段变量驻留在外存;内存变量驻留在内存。2/3/2023112.1VisualFoxPro的常量和变量2.1.2变量2.变量的分类一般内存变量是一种临时变量,由用户定义后用来存放程序运行的中间结果和最终结果。其值存储在内存里,一旦程序运行完毕,这些变量大多数会自动释放。它的作用是提供数值的传递和运算。系统内存变量是指以字母“_”开头的、由系统自动定义生成的变量。如_CLIPTEXT表示接受文本并送入剪贴板。数组是一种特殊的内存变量,是一组内存变量的有序排列,可通过下标来访问。2/3/2023122.1VisualFoxPro的常量和变量2.1.2变量3.内存变量的操作内存变量的赋值格式1:<内存变量>=<表达式>功能:计算赋值号右边的表达式的值,再将这个值赋给左边的内存变量。它具有计算和赋值的双重功能。说明:内存变量在赋值时定义了初值及类型,类型与所赋的值的类型相同。格式2:STORE<表达式>TO<内存变量表>功能:计算<表达式>的值,再将计算结果分别赋给内存变量表中的所有变量。2/3/2023132.1VisualFoxPro的常量和变量3.内存变量的操作内存变量的赋值格式1:<内存变量>=<表达式>功能:计算赋值号右边的表达式的值,再将这个值赋给左边的内存变量。它具有计算和赋值的双重功能。说明:内存变量在赋值时定义了初值及类型,类型与所赋的值的类型相同。例:R=5C=3.14*R*R?"圆面积是",C圆面积是78.50在命令窗口内输入命令行结果显示在窗口工作区2/3/202314911193.内存变量的操作内存变量的赋值格式1:<内存变量>=<表达式>例:交换两个变量的值。A=1B=9?"A=",A,"B=",BA=1B=9T=AA=BB=T?"A=",A,"B=",BA=9B=12.1VisualFoxPro的常量和变量ABT2/3/2023153.内存变量的操作内存变量的赋值格式2:STORE<表达式>TO<内存变量表>例:STORE命令的使用。STORE"AB"ToX,Y改用"="命令写:X="AB"Y="AB"2.1VisualFoxPro的常量和变量

"="与"STORE"的区别"="一次只能给一个变量赋值;"STORE"可以给多个变量赋值,但赋的是同一个值。2/3/2023163.内存变量的操作内存变量的显示格式:DISPLAY/LISTMEMORY[LIKE<通配符>][TOPRINTER[PROMPT]/TOFILE<文件名>]功能:显示当前已定义的内存变量名、属性、类型和值。注意:DISPLAY和LIST的区别:D1SPLAY命令分屏显示,每显示一屏暂停,按任意键后继续显示;LIST命令连续显示,中间不停顿,直到显示完毕。说明: 通配符有?和*两种,?代表单个字符,*代表一个或多个字符。若缺省任选项LIKE<通配符>,则显示当前内存中的所有内存变量;若选用该选项,则显示与<通配符>相匹配的内存变量。2.1VisualFoxPro的常量和变量2/3/2023173.内存变量的操作内存变量的显示格式:DISPLAY/LISTMEMORY[LIKE<通配符>][TOPRINTER[PROMPT]/TOFILE<文件名>]例如:显示内存变量。A=12STORE"ABCD"TON1,N2B={^2003-01-01}DISPMEMO&&显示全部内存变量DISPMEMOLIKEN*&&显示所有N开头的内存变量2.1VisualFoxPro的常量和变量2/3/2023183.内存变量的操作内存变量的显示格式:DISPLAY/LISTMEMORY[LIKE<通配符>][TOPRINTER[PROMPT]/TOFILE<文件名>]例如:显示内存变量。A=12STORE"ABCD"TON1,N2B={^2003-01-01}DISPMEMO&&显示全部内存变量DISPMEMOLIKEN*&&显示所有N开头的内存变量2.1VisualFoxPro的常量和变量2/3/2023193.内存变量的操作内存变量的删除格式1:RELEASE<内存变量表>格式2:RELEASEALL[LIKE/EXCEPT<通配符>]格式3:CLEARMEMORY功能:清除所选择的内存变量,并释放相应的内存空间。说明:格式1清除<内存变量表>列出的内存变量。格式2可分三种情况:RELEASEALLRELEASEALLLIKE<通配符>RELEASEALLEXCEPT<通配符>2.1VisualFoxPro的常量和变量2/3/2023201.4.2表达式2.内存变量的操作(2)内存变量的清除格式1:RELEASE<内存变量表>格式2:RELEASEALL[LIKE/EXCEPT<通配符>]例如清除内存变量。A=12STORE"ABCD"TON1,N2B={^2003-01-01}RELEASEADISPMEMORELEASEALLEXCEPTN*

2.1VisualFoxPro的常量和变量清除了变量A后,如再有引用的变量A的语句执行时,会有相应的提示。(如:?A)2/3/2023214.数组数组变量的概念。(一维数组和二维数组)2.1VisualFoxPro的常量和变量A(1)A(2)A(3)A(4)A(5)A(6)A(7)A(8)A(1)A(2)A(3)A(4)A(5)A(6)A(7)A(8)A(1,1)A(1,2)A(1,3)A(1,4)A(2,1)A(2,2)A(2,3)A(2,4)2/3/2023224.数组数组变量的定义。数组变量在使用前必须要用命令进行定义。格式:DEMENSION/DECLARE<数组名>(<下标1>[,<下标2>])[,<数组名>(<下标1>[,<下标2>])…]功能:建立一维或二维数组,确定下标的上界。2.1VisualFoxPro的常量和变量2/3/2023234.数组数组变量的定义。格式:DIMENSION/DECLARE<数组名>(<下标1>[,<下标2>])[,<数组名>(<下标1>[,<下标2>])…]说明:数组的下标可用圆括号()或方括号[]括起来。

系统规定各下标的下界为1。

二维数组可以按一维数组来表示其数组元素。

2.1VisualFoxPro的常量和变量A(1)A(2)A(3)A(4)A(5)A(6)A(1,1)A(1,2)A(1,3)A(2,1)B(2,2)A(2,3)2/3/2023244.数组数组变量的赋值。说明:建立数组后,数组各个元素的初始值均为逻辑值.F.。用赋值命令赋值时未指明下标,则数组中的所有数组元素同时被赋予同一个值;若指明下标,则给指定的数组元素赋值。同一数组各元素的数据类型可以不同。

2.1VisualFoxPro的常量和变量.F..F..F..F..F..F.1"K".T.DIMEA(6)A(2)=1&&数值型A(4)="K"&&字符型A(4)=.T.&&逻辑型2/3/2023252.2VisualFoxPro的命令和函数2.2.1VisualFoxPro的命令 1.VisualFoxPro6.0命令形式VisualFoxPro6.0命令的一般形式:命令动词[<范围>][FIELDS<字段名表>][FOR<条件>][WHILE<条件>][TOPRINTER/TOFILE][NOOPTIMIZE][OFF]其中:“<>”表示必选项,“[]”表示任选项,“/”表示两者选其一。2/3/2023262.2VisualFoxPro的命令和函数(1)命令动词命令动词表示命令的操作,说明了该命令应完成的功能。(2)<范围>子句表示命令对表文件进行操作的记录范围,一般有4种选择:ALL、NEXT<n>、RECORD<n>、REST。(3)条件子句范围子句、FOR子句和WHILE子句可以同时使用。它们的优先级是:范围子句优先于FOR和WHILE子句,WHILE子句优先于FOR子句。2/3/2023272.2VisualFoxPro的命令和函数2.命令的书写规则(1)每—命令必须以命令动词开头;(2)命令动词后面的命令短语可按任意顺序排列,短语之间用空格分隔,空格数任意;(3)命令一行书写不下时,可以换行,并在分行处加上分号“;”;(4)每行只能书写一条命令;(5)所有命令和函数均可只写前4个字符,且不分大小写;(6)—行命令结束后,用Enter键确认并执行。2/3/2023282.2VisualFoxPro的命令和函数2.2.2VisualFoxPro的函数函数的基本形式如下:函数的基本形式是:函数名([<参数表>])几点说明:(1)函数名后面是一对圆括号,圆括号内可以有参数,也可以没有参数。(2)参数是函数的自变量,可以是常量,也可以是变量,但参数的数据类型是固定的。(3)函数运算后会返回一个值,称为函数值。2/3/2023292.2VisualFoxPro的命令和函数1.数值运算函数(1)绝对值函数格式:ABS(<数值表达式>)功能;返回<数值表达式>值的绝对值。(2)取整函数格式:INT(<数值表达式>)功能:返回<数值表达式>的值的整数部分。(3)四舍五入函数格式:ROUND(<数值表达式1>,<数值表达式2>)功能:对<数值表达式1>的值进行四舍五入。若<数值表达式2>的值大于等于零,则表示要保留的小数位数;若<数值表达式2>是负值,则表示整数部分四舍五入的位数。2/3/2023302.2VisualFoxPro的命令和函数(4)最大值函数格式:MAX(<表达式1>,<表达式2>……)功能:返回表达式中的最大值。(5)最小值函数格式:MIN(<表达式1>,<表达式2>……)功能:返回表达式中的最小值。2/3/2023312.2VisualFoxPro的命令和函数(6)求余数函数格式:MOD(<数值表达式1>,<数值表达式2>)功能:返回<数值表达式1>除以<数值表达式2>所得的余数,<数值表达式2>不能为零。若<数值表达式2>为负数,则余数为负数。当<数值表达式1>和<数值表达式2>同号时,函数值是<数值表达式1>除以<数值表达式2>所得的余数;当<数值表达式1>和<数值表达式2>异号时,函数值是<数值表达式2>减去<数值表达式1>的绝对值除以<数值表达式2>的绝对值所得的余数。(7)平方根函数格式:SQRT(<数值表达式>)功能:返回<数值表达式>的算术平方根。<数值表达式>的值必须大于或等于零。2/3/2023322.2VisualFoxPro的命令和函数2.字符函数(1)取消空格函数格式:ALLTRIM(<字符表达式>)功能:删除指定字符表达式的前后空格符,并返回删除空格符后的字符串。(2)查找子串函数格式:AT(<字符表达式1>,<字符表达式2>[,<数值表达式>])功能:在<字符农达式2>中查找<字符表达式1>第<数值表达式>次出现的位置。若找到,返回在<字符表达式2>中出现的位置;若找不到,函数值为0。函数值的类型为数值型。缺省<数值表达式>,则为第一次出现的位置。2/3/2023332.2VisualFoxPro的命令和函数(3)字符串长度函数格式:LEN(<字符表达式>)功能:返回字符表达式的长度。(4)取子串函数格式:SUBSTR(<字符表达式>,<数值表达式1>[,<数值表达式2>])功能:从字符串<字符表达式>中取子串,<数值表达式1>是指取子串的开始位置;<数值表达式2>是指截取子串的长度,如果缺省,则从<数值表达式1>开始到字符串<字符表达式>的最后一个字符。(5)取左子串函数格式:LEFT(<字符表达式>,<数值表达式>)功能:从<字符表达式>的左边开始取子串,子串的长度由<数值表达式>决定。2/3/2023342.2VisualFoxPro的命令和函数(6)取右子串函数格式:RIGHT(<字符表达式>,<数值表达式>)功能:从<字符表达式>的右边开始取子串,子串的长度由<数值表达式>决定。(7)空格函数格式:SPACE(<数值表达式>)功能:输出若干个空格,空格数有<数值表达式>决定。(8)宏代换函数格式:&<字符型内存变量>[.<字符表达式>]功能:取得字符型内存变量的值。说明:宏代换的作用范围是从符号“&”开始,遇到圆点符“.”或空白为止。2/3/2023352.2VisualFoxPro的命令和函数3.日期和时间函数(1)系统日期函数格式:DATE()功能:返回当前系统日期。(2)系统时间函数 格式:TIME([<数值表达式>]) 功能:返回当前系统时间。当包含<数值表达式>时,返回的时间精确到百分之几秒,<数值表达式>可以是任何值。(3)系统日期时间函数格式:DATETIME()功能:返回当前的日期和时间。2/3/2023362.2VisualFoxPro的命令和函数(4)年、月、日函数格式:YEAR(<日期表达式>/<日期时间表达式>)MONTH/CMONTH(<日期表达式>/<日期时间表达式>)DAY(<日期表达式>/<日期时间表达式>)功能:返回给定的日期表达式或日期时间表达式中的年份、月份和日期。函数值为数值型或字符型(5)求时、分、秒函数格式:HOUR(<日期时间表达式>)MINUTE(<日期时间表达式>) SEC(<日期时间表达式>)功能:返回给定日期时间表达式的小时、分或秒。函数值为数值型或字符型。2/3/2023372.2VisualFoxPro的命令和函数4.转换函数(1)字母大小写转换函数格式:UPPER/LOWER(<字符表达式>)功能:UPPER函数将<字符表达式>中的字母转换成大写字母;LOWER函数将<字符表达式>中的字母转换成小写字母。返回值为字符型。(2)数值型与字符型转换函数格式:STR(<数值表达式1>[,<数值表达式2>[,<数值表达式3>]])VAL(<字符表达式>)功能:STR函数是将数值型转换成字符型。<数值表达式2>是转换的长度,缺省时转换整个长度;<数值表达式3>是指定转换的小数位数,缺省时不转换小数位。VAL函数是将字符型转换成数值型。转换部分是从第一个数字字符开始到非数字字符为止的数字串,小数位默认为2。2/3/2023382.2VisualFoxPro的命令和函数(3)日期型与字符型的转换函数格式:CTOD(<字符表达式>)DTOC(<日期表达式>[,1])功能:CTOD函数是将字符型转换成日期型;DTOC函数是将日期型转换成字符型,加参数1,则输出格式转换成年、月、日,年份4位。(4)字母与ASCⅡ的转换函数格式:ASC(<字符表达式>) CHR(<数值表达式>)功能:ASC函数是返回<字符表达式>中的首字符的ASCⅡ码;CHR函数是把<数值表达式>的值转换成相应ASCⅡ码的字母。2/3/2023392.2VisualFoxPro的命令和函数5.数据库与表函数有关数据库和表的函数请参考第四章和第七章。2/3/2023402.2VisualFoxPro的命令和函数6.其他函数(1)空函数格式:EMPTY(<表达式>)功能:当<表达式>为空时,返回函数值.T.,否则返回.F.。表达式可以是字符型、数值型、逻辑型、日期型、备注型和通用型。(2)数据类型测试函数格式:TYPE(<字符表达式>)功能:返回<字符表达式>的类型。说明:参数必须是字符型的。2/3/2023412.2VisualFoxPro的命令和函数

(3)文件测试函数 格式:FILE(<字符表达式>)功能:测试指定的文件是否存在,如果存在,则返回.T.;否则返回.F.。文件名必须包含扩展名。 (4)自定义对话框函数 格式:MESSAGEBOX(<提示文本>[,<数值表达式>[,<标题文本>]]) 功能:显示一个用户自定义对话框,函数值类型是数值型。<数值表达式>是用来指定对话框中的按钮、图标和显示对话框时的默认按钮。数值的设置详见帮助。2/3/2023422.3VisualFoxPro表达式表达式的形式是:操作数1运算符操作数2VisualFoxPro6.0的表达式分为五种:数值表达式、字符表达式、关系表达式、逻辑表达式和日期表达式。2/3/2023432.3VisualFoxPro表达式2.3.1数值表达式数值表达式是由常量、变量、函数和数学运算符组成,其运算结果是数值型的。数学运算符按照按照优先顺序为:()括号**(或^)乘方*乘/除%取模(求余数)+加 -减()+、-^、***、/%2/3/2023442.3VisualFoxPro表达式向一级别的运算原则是从左到右计算,括号可以改变运算的顺序,即先括号内后括号外,多层括号则先内层后外层。所有符号必须一个个并排写在同一横线上,不能有上标和下标。所有运算符都不能省略。所有括号都是小括号。转换时要保持原有数学表达式的优先级。2/3/202345

2.3VisualFoxPro表达式2.3.2字符表达式字符型表达式由字符运算符、字符型常量、变量和函数组成,其运算结果的数据类型为字符型或逻辑型。字符表达式的运算符有:连接运算符:+、- ,比较运算符:==、$。它们用于对两个字符串进行运算,分别称为加、减、精确比较和包含。2/3/2023462.3VisualFoxPro表达式1.加(+)是把两个指定的字符串连接,结果仍为字符串,即把运算符“+”后面的字符串加到运算符“+”前面的字符串后面。2.减(-) 也是进行两个字符串的连接,其作用与“+”运算类似,只是它把第一个字符尾部的空格全部移到连接后的字符串的尾部。2/3/2023472.3.2字符表达式

例:字符运算符使用。 ?“编程”+“语言"

编程语言 ?“编程”-“语言"

编程语言2.3.2字符表达式语言编程

语言编程

语言

2/3/2023482.3VisualFoxPro表达式2.3.3关系表达式关系表达式是由关系运算符、数值表达式、字符表达式、常量、变量和函数组成。其运算结果是逻辑型。关系表达式的一般形式为:<操作数1>关系运算符<操作数2>关系运算符主要有:<小于 <=小于或等于>大于>=大于或等于=等于〈〉或!=或#不等于$字符串包含、==字符串精确比较关系运算符是对同类数据比较,操作数可以是数值型、日期型、字符型和逻辑型。数值型数据比较时,按数据的大小比较。2/3/2023492.3VisualFoxPro表达式字符串比较时,逐个比较每个字符的ASCII码大小。例如:“abc”>“bc”结果为假。当操作数为字符型时,“=”与“==”有所区别。对于“=”,当在指明为精确环境时,其意义与“==”一致;而在非指定为精确环境中,只要<操作数2>是<操作数1>的子串时便为真。日期型数据比较时,日期大则大。逻辑型数据比较时,真大于假。2/3/2023502.3.3关系表达式ASCII:A的ASCII码值是65,小写字母=大写字母+32、相邻字母后面比前面大1。H和J的ASCII值谁大?Y和d的ASCII值谁大?2/3/2023512.3.3关系表达式

字符型数据比较。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论