第03章:数据类型、函数与表达式 VFP6.0考级专用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

VisualFoxPro6.0程序设计与应用教程第三章数据类型、函数与表达式3.1数据类型VFP提供11种的数据类型数据类型代码特性占用字节数字符型C存放字符1-254数值型N可存放0-9、+、-、小数点1-20整形N存放整数4浮点型N与数值型同(与其它版本兼容)4双精度型N与数值型同,提供更高精度8货币型Y存放货币值,小数保留4位8日期型D存放日期8时间型T存放时间8逻辑型L存放.T.、.F.1通用型G存放OLE对象(多媒体对象、表格等)4备注型M备注的内容4字符型(CharacterC):由任意字符(字母、汉字、数字、空格、符号等)组成每个字符占一个字节,长度为0~254,最多可有254个字符型的常量要用英文的单引号、双引号或方括号括起来(不可用中文标点)如:'A0001'、'数学系'数值型(NumericN):表示数量由数字0~9、一个正负符号(+或-)和小数点(.)组成。数值型数据取值的范围是:-0.9999999999E+19~0.9999999999E+20内存变量1~8字节,字段变量1~20字节小数点和小数位数是字段总长度的一部分整型(IntegerN)用于存储无小数部分的数值,只能用于数据表中字段的定义。在数据表中,整型字段占用4个字节,取值范围是:-2147483647~2147483647整型以二进制形式存储,不像数值型那样需要转换成ASCII字符存储。浮点型(FloatN)只能用于数据表中字段的定义,包含此类型是为了提供兼容性,浮点型在功能上与数值型等价。双精度型(DoubleN)用于取代数值型,以便能提供更高的数值精度。双精度型只能用于数据表中字段的定义,它采用固定存储长度的浮点数形式。与数值型不同,双精度型数据的小数点的位置是由输入的数据值来决定的。每个双精度型数据占8个字节。货币型(CurrencyY)在使用货币值时,可以使用货币型来代替数值型。货币型数据取值的范围是:-922337203685477.5807~922337203685477.5807小数位数超过4位时,系统将进行四舍五入的处理。每个货币型数据占8个字节。当涉及货币时使用,使用货币型数据要在前面加上符号'$',如:$100日期型(DateD)用于存储不带时间的日期值,宽度为8字节日期型数据的存储格式为'yyyymmdd'其中yyyy为年,占4位,mm为月,占2位,dd为日,占2位。日期型数据取值的范围是:公元0001年1月1日~公元9999年12月31日。日期型数据的表示有多种格式,最常用的格式为mm/dd/yyyy。系统默认格式为{mm/dd/yy},可通过SETDATE、SETMARK、SETCENTURY命令设置日期格式,或通过系统的'选项'对话框中的'区域'卡中设置。日期型常量要放在花括号中,如:dDate={09/10/2001}dBlank={}:空日期常用格式:标准ANSI:yy.mm.dd*美国式AMERICAN:mm/dd/yy欧州式BRITISH:dd/mm/yy输入日期时,其日期输入格式由STRICTDATE设置决定设置SETSTRICTDATETO1须按严格的日期输入方式:?{^1999/11/12}年月日时分秒:{^1999/11/124:2:5}设置SETSTRICTDATETO0则可用通常的日期输入方式日期时间型(DateTimeT)用以保存日期和时间值。日期时间型数据的存储格式为'yyyymmddhhmmss'其中yyyy为年,占4位,mm为月,占2位,dd为日,占2位,hh为时间中的小时,占2位,mm为时间中的分钟,占2位,ss为时间中的秒,占2位。与日期型一样,要用'{}'将数据括起来若要指定空日期时间值,要在花括号中加一个空格和冒号,如:{:}逻辑型(LogicalL)用于存储只有两个值的数据。存入的值只有真(.T.)和假(.F.)两种状态,宽度固定,占1个字节。通用型(GeneralG)用于存储OLE(对象链接和嵌入)对象,只能用于数据表中字段的定义。该字段包含了对OLE对象的引用,而OLE对象的具体内容可以是一个电子表格、一个字处理器的文本、图片等,是由其他应用软件建立的。宽度为4字节表中存储的是指向OLE对象的引用备注型(Memo)备注型用于字符型数据块的存储,只能用于数据表中字段的定义。在数据表中,备注型字段占用10个字节,并用这10个字节来引用备注的实际内容。实际备注内容的多少只受内存可用空间的限制。备注型字段的实际内容变化很大,不能直接将备注内容存在数据表(.DBF)文件中。系统将备注内容存放在一个相对独立的文件中,该文件的扩展名为.FPT。由于没有备注型的变量,所以对备注型字段的处理,需转换成字符型变量,然后使用字符型函数进行处理。3.2数据存储类型3.2.1常量常量:在运算过程中值不变的量(即不变的量).包括字符型常量、数值型常量、逻辑型常量、日期型常量和货币型常量五种。五种常量:C、N、D(T)、L、Y字符型常量是用定界符标识的字符串。所以也叫字符串常量。定界符必须是ASCII码的单引号''、双引号''和方括号[]。如果一种定界符已做为字符型常量的组成部分,则应选择另一种定界符来标识字符串。其书写方法如:'男'、'工程师'、[财金系金融专业]。数值型、浮点型常量可以是实数或整数,通常也叫做常数,可以用定点式表示,也可以用科学计数法表示。逻辑型常量规定用.Y.或.T.表示逻辑真,.N.或.F.表示逻辑假,小写亦可。日期型、时间型常量常用的日期格式mm/dd/yy[,][hh[:mm[:ss]][a|p]]严格的日期格式^yyyy-mm-dd[,][hh[:mm[:ss]][a|p]]货币型常量小数位数超过4位时,系统将进行四舍五入的处理。当涉及货币时使用,使用货币型数据要在前面加上符号'$',如:$1003.2.2内存变量内存变量是表示暂时存放在内存变量工作区中的有关程序运行或命令执行过程中所需要使用到的数据,包括常量、中间结果和最终结果。变量命名基本准则:●首字符不能是数字;以字母(下划线或汉字)开头,由字母、数字、下划线和汉字组成●名字的长度1到128个字符,不可以与系统保留名同名●词义要尽量准确。内存变量的赋值命令<内存变量>=<表达式>STORE<表达式>TO<内存变量表>说明:该命令计算表达式的值,并把计算结果赋给内存变量名(格式2能够给多个内存变量赋值)(1)格式1中的'='称为赋值号,而不是等于号。即有首先计算'='右部的值,然后送给左边的变量名;而且具有明显的时序性、方向性和不可移项性。如:X=2X=X+1(2)格式2中的内存变量名表是一组用逗号分隔开的变量,对于不同类型的变量,不能用格式2同时赋值。3.2.3数组变量1.数组的定义一维数组的定义DIMENSION|DECLARE数组名1(M1),数组名2(M2)…二维数组的定义DIMENSION|DECLARE数组名1(M1,N1),数组名2(M2,N2)…例如:DIMEX(3)有X(1)、X(2)、X(3)DIMEA(3,2)有A(1,1)、A(1,2)、A(2,1)、A(2,2)、A(3,1)、A(3,2)VFP中最多可定义65000个数组,每个数组最多可有65000个元素数组的赋值数组须先定义后赋值例如:DIMEA(2)A(1)=123A(2)='ABC'数组定义后各元素的初值均为:.F.3.2.4字段变量一个数据库由若干相关的数据表组成,一个数据表又由若干个具有相同属性的记录组成,而每个记录又由若干个字段组成,字段变量就是指表中已定义的任意一个字段。字段变量的类型由建表时定义的字段类型一致。区别:内存变量字段变量独立存在,关机丢失隶属于表,存于磁盘类型与长度可由赋值改变由表结构决定,不可改变单值变量多值变量当内存变量与字段变量同名时,默认为字段变量,内存变量可用前缀M-或M.区别。3.2.5记录记录是数据表中一组数据项的集合,同一个数据表中可以有若干个记录,每一个记录具有相同的字段数。在VFP中,许多操作都是通过记录操作来完成的。3.2.6对象对象:构成程序的基本单位和运行实体3.3函数ABS(N型表达式)函数值为N型如:?ABS(-123.456)值为123.456指数函数:EXP(N型表达式)函数值为N型如:?EXP(1)值为2.72一、数值类操作函数取整函数:INT(N型表达式)函数值为N型如:?INT(-132.93)值为-132自然对数函数LOG(N型表达式)函数值为N型如:?LOG(1)值为0.00?LOG(100)值为4.61取最大者函数:MAX(表达式1,表达式2,表达式3…)函数值为最大者,表达式必须同类型比较,表达式可以是N型、D型、不能为C型?MAX(12,43,20)值为43?MAX(12,-43,20)值为20?MAX(CTOD('01/01/97'),CTOD('10/03/97'))值为10/03/97取最小者函数:MIN(表达式1,表达式2,表达式3….)函数值为最小者,两个表达式必须同类型如:?MIN(12,-43,20)值为-43?MIN(CTOD('01/01/97'),CTOD('10/03/97'))值为01/01/97取余函数:MOD(N型表达式1,N型表达式2)或:N1%N2取表达式1除以表达式2的余数函数值的符号一定和表达式2符号相同如:?MOD(21,4)值为1?MOD(-21,4)值为3?MOD(21,-4)值为-3?MOD(-21,-4)值为-1四舍五入函数:ROUND(N型表达式1,N型表达式2)函数值为N型,如:?ROUND(123.45678,2)值为123.46?ROUND(123.45678,0)值为123?ROUND(123.45678,-1)值为120开平方函数:SQRT(N型表达式)如:?SQRT(10000)值为100.00N型表达式不能负数随机函数RAND()返回随机值,即大于0且小于1的任一正小数。例如:?RAND()随机函数:二、字符类函数判子串在母串中的位置:AT(子串,母串)函数值为N型,如:?AT('AD','WTADCER')值为3若母串中无子串,则函数值为0求子串函数:SUBSTR(C型,N1,N2)函数值为C型,实数取整?SUBSTR('ABC.DEF',5.99,2.1)+SUBSTR('123.4567',4)值为'DE.4567'取左子串函数:LEFT(C型表达式,N型表达式)?LEFT('中国人民',4)值为'中国'函数值为C型,N=0值为空串取右子串函数:RIGHT(C型表达式,N型表达式)函数值为C型,?RIGHT('中国人民',4)值为'人民'N=0值为空串?RIGHT('123',2)+RIGHT('123',-1)+RIGHT('中国人民',4)值为'23人民'取消前导空格函数:LTRIM(C型表达式)函数值为C型?LTRIM('123'+LTRIM('中国'))值为'123中国'取消尾部空格函数:RTRIM(C型表达式)函数值为C型?RTRIM('123'+RTRIM('中国人民'))值为'123中国人民'取消尾随空格函数TRIM(C型表达式)函数值为C型?TRIM('012345')+TRIM('中国人民')值为'012345中国人民'取消前部与尾随空格函数ALLTRIM(C型表达式)函数值为C型?ALLT('012345')+ALLT('中国人民')值为'012345中国人民'字符串测试函数测字母开关函数:ISALPHA(C型表达式)函数值为L型若字符串开头是字母,函数值为.T.,否则返回.F.?ISALPHA('1ABC2')值为.f.?ISALPHA('中国人民')值为.f.?ISALPHA('abc')值为.T.?ISALPHA('ABC')值为.T.测小写字母开

1 / 108
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功