第3章VFP语言基础

上传人:沈*** 文档编号:243905392 上传时间:2024-10-01 格式:PPT 页数:62 大小:438.50KB
返回 下载 相关 举报
第3章VFP语言基础_第1页
第1页 / 共62页
第3章VFP语言基础_第2页
第2页 / 共62页
第3章VFP语言基础_第3页
第3页 / 共62页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,*,Visual FoxPro,语言基础,第,3,章,VFP,语言基础,3.1,标识符,3.2,数据类型,3.3,常量与变量,3.4,数组,3.5,运算符和表达式,3.6,常用标准函数,3.1,标识符,关键字,在,VFP,中有一些标识符被称为关键字,已被系统预先定义,它们具有特殊的用途。如,for,,,if,,,else,,,endif,,,do,,,while,,,case,等。,预定义表示符,具有特殊含义的标识符,以固定的形式用于特定的地方,如标识库函数名和处理命令。,处理命令。如,input,,,accept,,,clear,,,locate,,,use,,,list,等。,标识库函数名。如,abs,,,sqrt,,,mod,,,max,,,left,,,year,,,ctod,,,eof,,,bof,等,用户自定义标识符,允许用作标识符的字符有:,26,个英文字母,数字,下画线(,_,)等一些可打印字符。,标识符的命名规则:,(,1,)以字母、汉字或下画线开头,且后跟字母、数字、下画线。,(,2,)有效长度随系统而异,但最多前,8,个字符有效(超长部分被舍弃)。,3.2,数据类型,数据类型是指简单数据的基本属性,,VFP,的数据类型可以按需要分为两大类:一类是,内存变量,,另一类是用于表中的字段(即,字段变量,)。,适用于内存变量与字段变量,1,字符型(,character,),字符型数据类型标识符为,C,,由字母、数字、一些特殊字符、汉字等组成,字符型数据的长度为,0,254,,每个字符占一个字节(,一个汉字占两个字节,)。,2,货币型常量,货币型变量类型标识符为,Y,,是由符号“,$”,开头的一个表示货币量的数字。,3,数值型,数值型类型标识符为,N,。型常量可以是由阿拉伯数字、小数点和正负号构成的各种整数、小数或实数。,数值型数据的长度为,1,20,位,每个数据占,8,个字节。,例如:,-196,,,3.1415926535,,,0.2831E+2,4,日期型,日期型类型标识符为,D,,用来表示一个具体的日期。默认格式为:,yyyy-mm-dd,或,yyyy/mm/dd,。,例如:,2004/07/11,空白日期, ,或,/,注意,: Visual FoxPro,默认使用严格的日期格式,如果要使用通常的日期格式,必须执行,SET,命令。,5,日期时间型,日期时间型数据类型标识符为,T,,用来表示一个具体的日期与时间。默认格式为:,yyyy-mm-dd,hh:mm:ssa|p,。,例如:,2004/07/11 11p,2004/07/11 11:12:30p,日期与时间数据之间必须用空格分隔,6,逻辑型,逻辑型数据类型标识符为,L,,常用来表示某个条件成立与否。型常量只有逻辑真与逻辑假两个值,逻辑真值通用,.T.,表示,逻辑假值用,.F.,表示。,.,T.,,,.t.,,,.Y.,或,.y.,表示“真”,.F.,,,.f.,,,.N.,或,.n.,表示“假”,适用于字段变量的数据类型,字段变量是与数据表中某个字段相联系的,在创建数据表时定义的一个字段就对应一个字段变量,数据表中的字段名即其字段变量名。,1.,浮点型,(,1,)单精度浮点型(,Float,)。,VFP,包含此类型是为了提供兼容性,与数值型等价。,(,2,)双精度浮点型(,Double,)。双精度浮点型用来取代数值型,以便能提供更高的数据精度。双精度浮点型数据采用固定存储长度的浮点数形式。与数值型不同,双精度浮点型数据的小数点位置是由输入的数据值决定的,每个双精度浮点型数据占,8,个字节。双精度浮点型数据的取值范围是:,+/-4.9406564841247E-324+/-1.79769313486232E308,。,2.,备注型(,Memo,),备注型数据类型标识符为,M,,用来表示一段文本数据。备注内容的多少只受内存可用空间的限制。备注型字段的内容不能直接存放在,.dbf,文件中,而是由系统自动将备注的内容存放在主文件名与表名相同扩展名为,.,dbt,的文件中。,3.,通用型(,General,),通用型数据类型标识符为,G,,可以表示类似“照片”、“,Word,文档”、“,Excel,工作簿”等,OLE,对象。通用型数据的多少只受内存可用空间的限制。,4.,整型(,Integer,),整型数据类型标识符为,I,,可用来表示正负整数,其取值范围是:,-2147483647,2147483646,,,整型字段占,4,个字节。,5.,二进制数据类型,二进制数据包括二进制字符型和二进制备注型两种,用于存储任意不经过代码页修改而维护的字符型数据或备注型数据。它们只能用于表中的字段。,只适用于内存变量的数据类型,对象型(,Object,),是用于存储类的具体实例的数据类型,类型标识符为,O,。对象型数据可以存取表单、控件等系统对象,还可以存取用户自定义对象。,字段类型,代号,说明,字段宽度,使用示例,字符型,C,字母、汉字和数字型文本,每个字符为,1,个字节,最多可有,254,个字符,学生的学号或姓名,,8199101,或,李立,货币型,Y,货币单位,8,个字节,工资,,$1246.89,日期型,D,包含有年、月和日的数据,8,个字节,出生日期,,02/25/2000,日期时间型,T,包含有年、月、日、时、分、秒的数据,8,个字节,上班时间,,02/25/2000 9:15:15 AM,逻辑型,L,“真”或“假”的布尔值,1,个字节,课程是否为必修课,,.T.,或,.F.,数值型,N,整数或小数,在内存中占,8,个字节;在表中占,1,至,20,个字节,考试成绩,,83.5,双精度型,B,双精度浮点数,8,个字节,实验要求的高精度数据,浮点型,F,与数值型一样,整型,I,不带小数点的数值,4,个字节,学生的数量,通用型,G,OLE,对象,在表中占,4,个字节,图片或声音,备注型,M,不定长度的一段文字,在表中占,4,个字节,学生简历,字符型,(,二进制),C,任意不经过代码页修改而维护的字符数据,每个字符用,1,个字节,最多可有,254,个字符,备注型(二进制),M,任意不经过代码页修改而维护的备注数据,在表中占,4,个字节,常量,常量:在程序的运行过程中不改变其值的量,常量的种类:,数值型常量,字符型常量,逻辑型常量,日期型常量,货币型常量,数值型常量,用整数、小数、科学计数法表示的数,举例:,123,、,-200,、,3.1415926,、,2.34E2,字符型常量,由一串字符组成的字符串,表示:用“”(双引号)、 (单引号)、,(方括号)括起来,举例:,“北京”、武汉大学、,123.456,注意:最长只能为,254,个字符,逻辑型常量,表示“真”或“假”的量,表示方法:,“真”,.T.,、,.Y.,、,.t.,、,.y.,“,假”,.F.,、,.N.,、,.f.,、,.n.,注意:两边的点不能少,日期型常量,表示日期和时间的量,严格的日期格式:,YYYY-MM-DD ,hh:mm:ss, a|p,举例:,2010/10/30,表示,2010,年,10,月,30,日,2010-10-30 13:25:39,表示,2010,年,10,月,30,日下午,1,点,25,分,39,秒,常用日期格式:,MM/DD/YY ,hh:mm:ss, a|p,举例:,10/30/10,表示,2010,年,10,月,30,日,10/30/10 13:25:39,表示,2010,年,10,月,30,日下午,1,点,25,分,39,秒,改变日期格式,可以改变日期的,输入格式,SET STRICTDATE TO 0,设置为常用格式,SET STRICTDATE TO 1,设置为严格格式,可以改变日期的,显示格式,工具,|,选项,|“,区域”标签中“日期和时间”,货币型常量,表示货币值的量,表示:以,$,开头,,4,舍,5,入到小数点,4,位,举例:,$123.456789,结果为,123.4568,变量,在程序的运行过程中可以变化的量,分类:,内存变量:由用户定义并使用的内存变量,是一种临时变量,以字符打头不超过,128,个字符,系统内存变量:系统使用的内存变量,以下划线开头,用以控制外部设备及有关信息的处理,字段名变量,以数据表的字段名作为变量引用,其值为当前记录相应字段的值,字段变量可以有,13,中不同的类型:,字符型、数值型、浮动型、双精度型、整型、货币型、日期型、日期时间型、逻辑型、备注型、通用型、二进制字符型和二进制备注型,变量名,命名规则,以字母、汉字或下画线开头,由字母、汉字、数字、下画线等符号组成,最多,128,个字符,不能与保留字相同,举例,:,xsbh,、,xm,、,姓名,_1,等等,注意:,该规则可用于函数名、库名、表名、字段名等,变量名不可与系统保留字同名,变量类型和值,6,种变量类型,字符型,数值型,逻辑型,日期型,日期时间型,货币型,注意:,变量无需申明,通过对变量赋值决定变量类型,赋值命令, = ,STORE TO ,举例:,xx=1.5,xy,=,青岛,z=2010-9-18 13:25:34,STORE 1 TO a, b, c,是否团员,=.T.,系统内存变量,由,VFP,自动生成和维护的变量,一般以下划线开头,举例:,_DIARYDATE &,当前日期,_CLIPTEXT&,剪贴板文本,例,通过,_,calcvalue,系统变量将一个数字传到计算器中,,激活计算器窗口并计算结果。,clear,_,calcvalue,=20,activate window,calculato,例,往剪贴板中写入信息,_CLIPTEXT=hello!“,查看剪贴板,变量显示命令,? | ?,格式:,? | ? ,功能:计算并显示表达式的值,说明:,?,换行显示,(从屏幕下一行第一列开始显示结果),?,不换行显示,(从屏幕当前列开始显示结果,举例:,? xx,? ?,xy,?,是否团员,? “I am a student.”,表示可用逗号隔开多个表达式。,?“,xx=“,xx,例题,:,Store 2*4 to a1,a2,a3,?a1=,a1,a2=,a2,a3=,a3,?a1=6,a1,a2=5,a2,a3=4,a3,变量显示命令,LIST/DISPLAY MEMORY,格式,:,LIST|DISPLAY MEMORY LIKE TO PRINT,功能:显示当前已定义的内存变量, 包括变量名、有效范围、类型、值,举例:,LIST MEMORY&,滚动显示,DISPLAY MEMORY&,分屏显示,DISPLAY MEMORY LIKE x*&,显示所有以,x,开头的变量,例,STORE ,dggaf, TO a1,a2=2004-04-25,c=.t.,LIST MEMO LIKE a?,例,显示建立的内存变量,执行如下命令:,LIST MEMORY LIKE ?,数组,数组的概念及特点,数组的定义,数组的赋值,数组的概念及特点,数组的概念,名字相同、用下标区分的内存变量,数组元素,数组中的每一个变量,特点,同一数组中各元素可以是不同的数据类型,数组可以不带下标使用,在赋值号左边时表示整个数组,在赋值号右边时表示该数组的第一个元素,数据可以在数组和数据表间相互转换,数组的定义,格式,:,DIMENSION |DECLARE () ,,,() () ,,,(),说明:数组下标下界为,1,例如:,DIMENSION c(4),DIMENSION a(3) , b(2,3),数组的赋值,一个元素一个元素地赋值,a(1)=10 a(2)=“,山东科大”,a(3)=2001-10-29,b(1,1)=2.3 b(1,2)=“,青岛”,b(1,3)=.T.,b(2,1)=4 b(2,2)=78,Store 2001-10-29 to b(2,3),数组整体赋值,a=40 b=0,如果定义的数组未赋初值,系统默认为逻辑值,.F.,二维数组可以当作一维数组使用,b(1,2),相当,b(2) b(2,2),相当,b(5),例,数组定义和赋值。,DIMENSION a(10), b(3,4),a=0,STORE 6 TO b,b(1,2)=Visual FoxPro,同一数组的不同元素可以存放不同类型的数据,例题,:,级数输出,dimension x(20),x(1)=1,x(2)=2,?x(1),x(2),for i=3 to 20,x(i,)=x(i-2)+x(i-1),?,x(i,),endfor,return,运算符,分类,算术运算符,关系运算符,逻辑运算符,字符运算符,算术运算符,运算对象和运算结果可以是数值型或日期型,运算符 优先级,*或,:乘方 高,*:乘 、,/,:除,%,:取模(或取余),取两数相除的余数,+,:加、,-,:减 低,举例:,? 5/3,结果:,1.67,? 5%3,结果:,2,?-3*2-5,结果:,4.00,?2*7%32+3,结果:,8,算术运算符,举例,? 3/2&,返回,1.5,? 5.5%3 &,返回,2.5,? Int(5/3)& 1,取得数值的整数部分,? 62&,返回,36,? 2001-12-29+4&,返回,2002-1-2,? 2002-3-1 -2001-12-29&,返回,62,? 2002-3-1 1&,返回,2002-2-28,? 2000-3-1 1&,返回,2002-2-29,字符运算符,运算对象和运算结果均为字符型,+,:字符串连接,-,:字符串连接,将两字符串尾部空格移到结果字符串尾部,举例,? “ABC ”+“DEF ”&“ABC DEF ”,? “ABC ”-“DEF ”&“ABCDEF ”,? Len(“ABC ”-“DEF ”)&10,关系运算符,一般用于判断指定的条件是否满足,运算对象可以为数值型、字符型、日期型等,运算结果为逻辑型,运算符,:是否大于,=,:是否等于,=,:是否大于等于,、,!=,、,#,:是否不等于,=,:字符串全等比较,只有两个字符串的各对应元素都相等时,才返回,.T.,,,否则返回,.F.,$,:,字符串包含,若右边的字符串中包含左边的字符串,则返回,.T.,;,否则返回,.F.,关系运算符,举例,? 23,返回,.F.,? 23,返回,.T.,? “ABC”=“ABC”,返回,.T.,? “AB”=“ABC”,返回,.F.,? “ABC”=“AB”,返回,.T.,? “ABC”=“ABC”,返回,.T.,? “ABC”=“AB”,返回,.F.,? “AB”=“ABC”,返回,.F.,?,“AB”$“ABC”,返回,.T.,? “AC”$”ABC”,返回,.F.,逻辑运算符,在多个逻辑值中进行判断,一般用于判断某几个条件是否满足,运算对象和运算结果均为逻辑型,运算符,OR,或,.OR.,:,逻辑或,只有两个运算对象,均为,.F.,时,返回,.F.,;,其余均返回,.T.,AND,或,.AND.,:,逻辑与,只有两个运算对象,均为,.T.,时,返回,.T.,;,其余均返回,.F.,NOT,或,.NOT.,:,逻辑非,运算对象,为,.T.,时,返回,.F.,;,运算对象,为,.F.,时,返回,.T.,OR,T,F,T,T,T,F,T,F,AND,T,F,T,T,F,F,F,F,NO,T,F,T,F,T,表达式,表达式的概念,表达式的运算顺序,表达式分类,表达式的概念,用运算符将常量、变量、函数等连接起来的式子,单个的常量、变量、函数等是表达式的特例,表达式必须有确定的值若表达式中包含变量,该变量必须赋值,运算符同级:从左到右,运算符,不同级,表达式的运算顺序,括号运算,或,算术运算,乘方,乘、除、取模,加、减,关系运算,所有关系运算同级,逻辑运算,非,与,表达式分类,按表达式值的类型分:,数值表达式,字符表达式,关系表达式,逻辑表达式,日期表达式,表达式举例,? (SQRT(32*2)/4+6)*5-20,? (SQRT(32*2)/4+6)*5-2030,? “,cd,”$ “,abc”+”def,”,? Date()=2002-3-8,A=5 b=4 c=6,? ab and ac,? Ab and a+bc,标准函数,函数的概念,函数的三要素:函数名、参数、函数值,如,ABS(-2),函数的分类,按返回值分:,数值型,字符型,日期型,逻辑型,按功能分:,字符处理函数 数学运算函数 转换函数 日期函数 测试函数 环境函数 键处理函数 数组函数 窗口函数 菜单函数 其他函数,字符处理函数,格式,:,SUBSTR,(,,,,,),功能:返回,的子串,,说明:,表示子串在源字符串中的起始位置,子串包含的字符个数,若缺省,表示到源字符串末尾,举例,A=“This is a book.”,? SUBSTR(a,1,4) &,返回,This,?SUBSTR(“I am a student”,7) &,返回,student,字符处理函数,格式,:,LEFT,(,,,),功能:返回,中左边,个字符,举例:,A=“This is a book.”,? LEFT(a,4)&,返回,This,格式,:,RIGHT,(,,,),功能:返回,中右边,个字符,举例,RIGHT(“I am a student”,7)&,返回,student,使用子串函数时,注意源串前后的空格。,字符处理函数,格式,:,AT(,,,,,),功能:返回,在,中第,n,次 出现的位置,说明:,若未找到,,返回,0,若省略,n,表示,相当于,n=1,举例,?,AT(“cd”,”cdabcd,”)&,返回,1,? AT(“cd”,”cdabcd”,2)&,返回,5,?,AT(“ad”,”cdabcd,”)&,返回,0,字符处理函数,格式,:,LOWER(),功能:将,变为小写,格式,:,UPPER(),功能:将,变为大写,例:?,Lower(“abCDFg,”),显示“,abcdfg,”,?,upper(“abCDFg,”),显示“,ABCDFG”,字符处理函数,格式,:,SPACE(),功能:返回,个空格组成的字符串,格式:,LTRIM,(,),功能:删除字符表达式值前的空格,格式:,RTRIM,(,或,TRIM,(,),功能:删除字符表达式值后的空格,格式,:,ALLTRIM(),功能:将,前后的空格去掉,格式:,LEN(),功能:返回字符串的长度,举例,?“AB”+SPACE(4)+”CD” &,返回“,AB CD”,? ALLTRIM(“ ABCD ”)&,返回“,ABCD”,?,len,(“,abcd,”) &,返回,5,?,len(alltrim,(“ ABCD “) &,返回,4,类型转换函数,格式,:,STR,(,,,,,),功能:将,转换成字符串,说明:,指定字符串的长度,缺省为,10,位,指定小数位数,缺省为整数,举例:,? Str(23.45)&,返回“,23”? Str(23.45,5) &,返回“,23”? Str(23.45,5,1) &,返回“,23.5”,格式:,val,(),功能:将,转换成数值,说明:,必须为有效的数值格式,举例:,? Val(“123.456”),&,返回数值,123.456,类型转换函数,格式:,CTOD,(),功能:将,转换成日期,举例:,? Ctod(“1/31/2003”)&,返回,01/31/03 ? Ctod(“2/31/03”) &,返回, / / ,格式:,DTOC,(),功能:将,转换成字符串,举例:,? Dtoc(1/31/2003) &,返回,”,01/31/03” ? Dtoc(2/31/2003) &,返回,”,/ / ”,格式:,DTOS,(,),功能:将日期表达式转换为,YYYYMMDD,格式字符串,举例:,?,dtos(date,() &,返回,20040208,日期函数,格式,:,DATE(),功能:返回系统日期,格式,:,TIME(),功能:返回系统时间,格式,:,YEAR(),功能:返回,中的年份,,4,位整型,格式:,month(),功能:返回,中的月份,格式:,day(),功能:返回,中的日期,举例,? YEAR(2001-10-23)&,返回,2001,? month(date()&,返回当天的月份,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!