第6章 VFP语言基础_第1页
第6章 VFP语言基础_第2页
第6章 VFP语言基础_第3页
第6章 VFP语言基础_第4页
第6章 VFP语言基础_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、第第 6章章 VFP语言基础语言基础 n本章要点nVFP中的数据类型nVFP中的常量和变量nVFP的常用函数n本章难点nVFP中的常量和变量nVFP的常用函数n学习目标n掌握VFP中的数据类型n掌握VFP中的常用函数6.1 数 据 类 型 n Visual FoxPro 6.0系统中数据类型分为以下13类数据类型: n(1)字符型(character):由字母或汉字(一个汉字占两个英文字母宽度)、数字或其它符号的ASCII码组成,长度为1254个英文字符长,每个英文字符占1个字节。n(2)字符型(二进制):二进制的字符型用于存储任意不经过代码修改的字符型数据,其不动性决定了此类型只能作用于数据

2、表中字段的定义。n(3)整型(integer):用于存储无小数点部分的数值,只能用于数据表中字段的定义。在数据表中,每个整型字段占4个字节空间。数据取值范围是-21474836472147483647。6.1 数 据 类 型n(4)数值型(numeric):表示数值,由数字09、符号(+/-)及小数点组成。每个数据在内存中的存储占8个字节空间,数字最大的书写长度为20位长。数值型数据可以采用科学计数法表示,其取值范围是-0.999999999E+190.999999999E+20。n(5)浮点型(float):提供此类型是为了与数值型数据类型相兼容。浮点型在功能上与数值型等价,取值范围也是一致

3、的。其在内存中存储也是占据8个字节。n(6)双精度型(double):用于取代数值型,以便提供更高的数据精度(即有效数字位数,尤其是小数部分)。该精度采取浮点格式,在内存中存储也占8个字节,但是小数点的位置是由输入的数值决定的,取值范围是+/-4.94065645842147E-324+/-8.9884656743115E307。6.1 数 据 类 型n(7)货币型(currency):在使用货币值时,可以用货币型数据来代替数值型数据表示。每个货币型数据在内存中占据8个字节空间,取值范围在-922337203685477.5807922337203685447.5807,小数部分最多为4位,当

4、小数位超过4位时,四舍五入。n(8)日期型(date):用以保存不带时间的日期值。日期型数据的内存存储格式为“yyyymmdd”(y:year,m:month,d:day),但是表示方式却有多种,可以通过相应的设置方法对其重置。最常用的表现格式为mm/dd/yyyy。n(9)日期时间型(datatime):用来保存日期和时间。其在内存中的存储格式为“yyyymmddhhmmss”。日期时间型数据表示中可以缺省日期或者时间,若省略日期,则自动加上1999年12月31日;若省略时间,则自动设定为午夜零点。n(10)逻辑型(logic):逻辑型数据只能存放两个量,用来表示两种相对的状态,存放的值只有

5、真(.T.)和假(.F.)。逻辑型数据在内存中的存储占一个字节。6.1 数 据 类 型n(11)备注型(memo):是数据库中一个重要的数据类型,主要用来补充字符型数据的不足,存储字符型数据块,但是在数据类型定义中其宽度只占有10个字节,此10个字节的空间不是存放具体的内容而是用来备注实际存放的内容的,相当于指针的作用。实际存放的数据内容是存储在一个相对独立的文件中,该文件的扩展名为.dbt,文件名与定义的数据表同名,存放内容的多少由内存空闲空间大小限制。n不足之处就是备注型数据不能直接操作,必须转换为字符型才能进行操作。n(12)备注型(二进制):用于存放不经过代码修改而维护的备注型数据。与

6、二进制字符型数据定义一样,也只能作用于数据表中字段的定义。n(13)通用型(general):用来存放OLE(Object Link Embedded,对象链接和嵌入)对象,可以用来对应一个电子表格(如Excel)、文本(如Word)或图片等,这些都是由其它应用软件建立的,用来弥补Visual FoxPro 6.0的不足。 6.2 常量和变量 n6.2.1 常量 n常量也称为常数,表示恒定的、不变的值。常量是不允许被更改的。不同类型的常量所对应的书写格式是不一样的。Visual FoxPro 6.0系统中的常量主要有6种:字符型常量、数值型常量、日期型常量、日期时间型常量、逻辑型常量和货币型常

7、量。 6.2 常量和变量n6.2.2 变量nVisual FoxPro 6.0系统中对于变量有两种表现形式:其一称为内存变量,即设置于内存存储区域中,变量值就是存放于该区域中的数据。在Visual FoxPro 系统中,变量名所对应的数据值的类型不同,变量的类型也就随之变化。内存变量随时使用,随时建立。n其二就是字段变量,字段变量是隶属于数据表的,使用字段变量时必须先打开相关数据表,数据表中的字段名就是字段变量(一个字段名可以对应若干个记录值)。由于数据表一经设定,其所包含的字段名称、字段类型、取值范围和宽度也就确定了,因此字段变量是固定的。字段变量的取值范围只能是整个数据表中的记录值。字段变

8、量的当前数据值就是数据表中当前记录所对应的字段取值。 6.2 常量和变量n1变量名的命名规则 n每个变量都是通过变量名来使用变量。变量名的命名规则如下:变量名由字母、数字和下划线组成。以字母和下划线开头,长度为1128个英文字符,但是不能使用Visual FoxPro中的保留字(Visual FoxPro系统中已经定义过并出现的标识符号)。在中文Visual FoxPro中可以使用汉字,但是每个汉字占据两个英文字符长度。 6.2 常量和变量n2内存变量的类型 n内存变量的取值类型可以含字符型(C)、数值型(N)、货币型(Y)、逻辑型(L)、日期型(D)和日期时间型(T)。 6.2 常量和变量n

9、3内存变量的两种表现形式 n(1)简单内存变量 :简单内存变量不需要事先定义,可随用随建,通过变量名访问变量值。 n(2)数组 :定义数组格式既可以同时定义多个简单内存变量,减少大规模定义变量的复杂性,又可以利用数组下标的特征,使得数组元素在运算中具有一定的方便性。与简单内存变量不同,数组必须在使用前定义。数组定义中必须包含数组名、数组大小和数组的维数(行、列数)。数组的大小用数组下标上限和下限值表示,下限固定为1。数组下标的上、下限值是正整数。 6.2 常量和变量n4内存变量的常用命令 n(1)内存变量的赋值 nSTORE TO 变量名表 或 n= n(2)内存变量的显示 nLIST(或DI

10、SPLAY)MEMORY nLIKE TO PRINTER|TO FILE 6.2 常量和变量n(3)内存变量的清除 nCLEAR MEMORY n或 nRELEASE 或 nRELEASE ALL EXTENDED 或 nRELEASE ALL LIKE | EXCEPT 6.2 常量和变量n5 变量的作用域 n变量的作用域就是变量的作用范围。在 Visual FoxPro 6.0 中,可以使用 LOCAL、PRIVATE 和 PUBLIC 命令强制定义变量的作用范围。n用 LOCAL 创建的变量只能在创建的过程中使用和修改,不能被高层或者低层的过程访问。nPRIVATE 用于定义私有变量。

11、PRIVATE 主要定义当前过程中的变量,若以前有定义过的同名的变量,则被暂时保存起来,在本次过程中以前的同名的变量不起作用,只能使用本次定义的私有变量,同样私有变量是不能超越本次过程的。 nPUBLIC 用于定义全局变量,即在所有的过程中都可以使用这些全局变量。 6.3 表达式 n 表达式是按照一定的规则形成的一个合法表达方式,无论是简单还是复杂,按照规定的运算法则最终都能够计算出一个结果,即表达式的值。 6.3.1 表达式的表现形式和分类 n表达式的形式主要表现在以下两个方面: n单一的运算对象(例如常量、变量或函数等)。 n由运算符将运算量连接起来的式子。 n 根据表达式的类型,表达式可

12、以分为算术表达式、字符表达式、时间日期表达式、关系表达式和逻辑表达式等。 6.3.2 算术表达式 n算术表达式由算术运算符将数值型数据连接起来形成,其结果仍然是数值型的,可以为常量,也可以为变量。算术运算符及其优先级如表 6.1 所示。 表 7.1 算术运算符及其优先级 运 算 符说 明优先级( )形成表达式内的子表达式1*或乘方运算2*、/、%乘、除、取余3+、-加、减46.3.3 字符表达式 n字符串运算符有两个,它们的优先级相同: n? +:前后两个字符串首尾连接形成一个新的字符串。 n? - :连接前后两个字符串,并将前一个字符串尾部的空格移动到合并后的新字符串尾部。开头的或中间嵌入的

13、空格不移动。 6.3.4 日期时间表达式 n时间日期型表达式中可以使用的运算符也是两个,即+和- 。n日期时间型表达式的格式有一定的限制,不能任意组合。日期格式的组合如表 6.2 所示。 表 7.2 日期格式组合 格 式结 果 及 类 型 + 或者 +日期型。指定日期若干天后的日期- 日期型。指定日期若干天前的日期-数值型。两个日期之间相差的天数+或+日期时间型。若干秒后的日期时间- 日期时间型。若干秒前的日期时间- 日期时间数值型。两个指定日期之间相差的秒数6.3.5 关系表达式 n关系表达式通常也叫比较表达式,它由关系运算符号将两个运算对象连接起来形成,形式为:。 6.3.6 逻辑表达式

14、n逻辑表达式由逻辑运算符将逻辑型数据连接起来而形成,其结果仍然是逻辑型数据。n逻辑型运算符有三个:.NOT.或!(逻辑非)、.AND.(逻辑与)、.OR.(逻辑或),也可以省略两边的点号:NOT、AND、OR。优先级为NOT、AND和OR。n同一类运算符中的各个运算符有一定的运算优先级别,而不同类的运算符可能出现在同一个表达式中,因此在混合运算中的各运算符的执行次序为算术运算表达式、字符串表达式、日期时间表达式、关系表达式和逻辑表达式。 6.3.7 表达式小结 n 一个表达式中可以包含不同类型的运算符和运算对象。每一种运算都有其执行的先后顺序,当一个表达式由不同类型的表达式组合而成,即有多种数

15、据类型的运算符同时出现在同一个表达式中时,其运算符的优先级如下: n第一级:算术运算符和字符运算符。 n算术运算符:正负号 * 或 *, +, - n字符串运算符的级别相同: + ,- n第二级:关系运算符。 n关系运算符的级别相同: , =, , 或#, $, = = n第三级:逻辑运算符。 n逻辑运算符:.NOT或! AND OR n 所有同一级运算都是从左至右进行的。括号内的运算优先执行,嵌在最内层括号里的运算先进行,然后依次由内向外执行。 6.4 函 数 (function) n 函数分为两部分,一部分是Visual FoxPro 6.0系统给定的,称为系统函数,也叫内部函数,是函数中

16、的主体;另一部分是用户根据函数的组成要素进行自我设计,称为自定义函数。本节主要讲述系统函数。 6.4.1 数值函数 n1绝对值函数:ABS( ) n格式:ABS() n功能:返回指定的数值表达式的绝对值。n2三角函数:COS( )、SIN( )、TAN( ) n格式:COS() nSIN() nTAN() n功能:返回指定的数值表达式的三角函数的值。 n注意:给定的数值表达式的值必须是弧度值,而不是普通的度数。 n3e 指数函数:EXP ( ) n格式:EXP() n功能:返回指定的数值表达式的 e 的指数。n4取整数函数:INT( )、CEILING( )、FLOOR( ) n格式:INT(

17、) n功能:返回指定的数值表达式的整数。 n注意:对负数取其小,遵循零接近方向。 n格式:CEILING() n功能:返回大于等于指定的数值表达式的最小整数。n格式:FLOOR() n功能:返回小于等于指定的数值表达式的最大整数。 n5自然对数函数:LOG ( ) n格式:LOG() n功能:返回指定的数值表达式的自然对数。 n6最大值函数和最小值函数:MAX( )、MIN( ) n格式:MAX() nMIN() n功能:返回指定的数值表达式列表中的最大值或最小值。 n7取余函数:MOD ( ) n格式:MOD() n功能:返回指定的数值表达式 1 除以数值表达式 2 的余数。 n8圆周率函数

18、:PI ( ) n格式:PI ( ) n功能:求圆周率值。 n9随机函数:RAND ( ) n格式:RAND() n功能:产生 01 之间的随机数。 n10四舍五入函数:ROUND ( ) n格式:ROUND() n功能:返回指定的数值表达式 1 并按照数值表达式 2 的位数四舍五入后的值。 n11符号函数:SIGN( ) n格式:SIGN() n功能:返回指定的数值表达式的符号。 n注意:当表达式的运算结果为正、负和零时,函数值分别为 1、- 1、0。 n12平方根函数:SQRT ( ) n格式:SQRT() n功能:返回指定的数值表达式的平方根值,自变量的值不能为负数。 6.4.2 字符处

19、理函数 n1删除字符串空格函数:ALLTRIM ( )、TRIM( )、LTRIM( ) n格式:ALLTRIM() nTRIM() nLTRIM() n功能:ALLTRIM( ):返回指定的字符表达式去掉前导和尾部空格后形成的字符串,注意中间嵌入的空格不删除。 nLTRIM( ):返回指定的字符表达式去掉前导空格后形成的字符串。 nTRIM( ):返回指定的字符表达式去掉尾部空格后形成的字符串。 n2求子串位置函数:AT( )、ATC( ) n格式:AT(,) nATC(,) n功能:AT( )返回数值型。如果字符表达式 1 是字符表达式 2 的子串,则返回字符表达式 1 在字符表达式 2

20、中出现的位置;如果不是子串,则返回为 0。 nATC( )与 AT( )功能类似,但是不区分大小写。 n可选的数值表达式用来表明在字符串表达式 2 中搜索表达式 1 时第几次出现的起始位置,默认为第 1 次。 n3求子串字符 ASCII 码值函数:ASC( ) n格式:ASC() n功能:返回指定的字符串表达式的最左边第一个字符的 ASCII 码值。n 4取子串函数:LEFT( )、RIGHT( )、SUBSTR( ) n格式:LEFT(,) nRIGHT(,) nSUBSTR(,) n功能:LEFT( ):从指定的字符串表达式的左边取一个指定长度的子串作为函数值。 RIGHT( ):从指定的

21、字符串表达式的右边取一个指定长度的子串作为函数值。 nSUBSTR( ):从指定的字符串表达式的指定位置取一个指定长度的子串作为函数值,如果缺少第三个自变量,则一直到字符串末尾结束。 n5求字符串函数长度:LEN( ) n格式:LEN() n功能:返回指定的字符串表达式的长度,即所包含字符的个数,函数值为数值型。n6求大小写函数:LOWER( )、UPPER( ) n格式:LOWER() nUPPER() n功能:LOWER( ):将指定的表达式中的大写字母转换为小写字母,其它字符不变。 nUPPER( ):将指定的表达式中的小写字母转换为大写字母,其它字符不变。 n6求空格函数:SPACE(

22、 ) n格式:SPACE() n功能:生成指定的表达式中定义的空格的个数。 n注意:数值表达式必须是正整数。 n8子串替换函数:STUFF( ) n格式:STUFF(,) n功能:用指定的字符串表达式 2 替换字符串表达式 1 中由起始位置和长度指定的一个 子串,如果长度为 0,则表示插入字符表达式 2;如果字符表达式 2 为空串,则删除字符串表达式 1 中指明的子串。 n9字符替换函数:CHRTRAN( ) n格式:CHRTRAN(,) n功能:当字符串 1 中包含字符串 2 时,就用字符串 3 在字符串 1 中替换字符串 2;如果字符串 3 的长度多于字符串 2,则多余部分忽略;如果字符串

23、 3 的长度小于字符 串 2,则不做替换,在字符串 1 中将字符串 2 删除。 n10字符串匹配函数:LIKE( ) n格式:LIKE(,) n功能:比较字符串 1 和字符串 2 相对位置上的字符,如果所有的对应字符都相匹配, 则返回逻辑值 .T. ,否则返回逻辑值 .F.。 6.4.3 日期类函数 n1日期、时间函数:DATE( )、TIME( )、DATETIME( ) n格式:DATE( ) nTIME( ) nDATETIME( ) n功能:DATE( ):返回当前系统日期,函数的返回值为日期型。 nTIME( ):返回当前系统时间,采用 24 小时制,函数的返回值为 hh:mm:ss

24、 格式,返回值的类型为字符型。 nDATETIME( ):返回当前系统日期时间,函数的返回值为日期时间型。 n2年份、月份和天数函数:YEAR( )、MONTH( )、DAY( ) n格式:YEAR(| ) nMONTH(| ) nDAY(| ) n功能:YEAR( ):返回当前系统年份(4 位表示)。 nMONTH( ):返回当前系统月份。nDAY( ):返回当前系统天数。 n注意:这三个函数的返回值的类型都是数值型。 n3时分秒函数:HOUR( )、MINUTE( )、SEC( ) n格式:HOUR( ) nMINUTE( ) nSEC( ) n功能:HOUR( ):返回当前系统小时部分。 nMINUTE( ):返回当前系统分钟部分。 nSEC( ):返回当前系统秒数部分。 6.4.4 转换类函数 n1数值转换字符函数:STR( ) n格式:STR(, ) n功能:将数值表达式的值转换为字符串,转换时根据需要自动进行四舍五入。 n2字符转换数值函数:VAL( ) n格式:VAL() n功能:转换成数值(含正负号、小数点和数字)。如果出现非数字字符,则转换前面部分

温馨提示

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

评论

0/150

提交评论