FoxPro的数据及其运算课件.ppt

上传人:小飞机 文档编号:1284793 上传时间:2022-11-03 格式:PPT 页数:96 大小:336.44KB
返回 下载 相关 举报
FoxPro的数据及其运算课件.ppt_第1页
第1页 / 共96页
FoxPro的数据及其运算课件.ppt_第2页
第2页 / 共96页
FoxPro的数据及其运算课件.ppt_第3页
第3页 / 共96页
FoxPro的数据及其运算课件.ppt_第4页
第4页 / 共96页
FoxPro的数据及其运算课件.ppt_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《FoxPro的数据及其运算课件.ppt》由会员分享,可在线阅读,更多相关《FoxPro的数据及其运算课件.ppt(96页珍藏版)》请在三一办公上搜索。

1、第三章,Visual FoxPro的数据及其运算,1,Visual FoxPro,第三章Visual FoxPro的数据及其运算1Visual,3.1 Visual FoxPro的数据类型3.2 Visual FoxPro的常量与变量3.3 Visual FoxPro的内部函数3.4 Visual FoxPro的表达式,2,Visual FoxPro,3.1 Visual FoxPro的数据类型2Visual,1字符型字符型(Character)数据是不能进行算术运算的文字数据类型,用字母C表示。字符型数据包括中文字符、英文字符、数字字符和其他ASCII字符,其长度(即字符个数)范围是0254

2、个字符。,3.1 Visual FoxPro的数据类型,3,Visual FoxPro,1字符型3.1 Visual FoxPro的数据类型3V,2数值型数值型(Numeric)数据是表示数量并可以进行算术运算的数据类型,用字母N表示。数值型数据由数字、小数点和正负号组成。数值型数据在内存中占用8个字节,相应的字段变量其长度(数据位数)最大20位。在Visual FoxPro中,具有数值特征的数据类型还有整型(Integer)、浮点型(Float)和双精度型(Double),不过这3种数据类型只能用于字段变量。,4,Visual FoxPro,2数值型4Visual FoxPro,3货币型 货

3、币型(Currency)数据是为存储货币值而使用的一种数据类型,它默认保留4位小数,占据8字节存储空间。货币型数据用字母Y表示。4日期型日期型(Date)数据是表示日期的数据,用字母D表示。日期的默认格式是mm/dd/yy,其中mm表示月份,dd表示日期,yy表示年度,年度也可以是4位。日期型数据的长度固定为8位。日期型数据的显示格式有多种,它受系统日期格式设置的影响。,5,Visual FoxPro,3货币型 5Visual FoxPro,5日期时间型 日期时间型(Date Time)数据是表示日期和时间的数据,用字母T表示。日期时间的默认格式是mm/dd/yyyy hh:mm:ss,其中m

4、m、dd、yyyy的意义与日期型相同,而hh表示小时,mm表示分钟,ss表示秒数。日期时间型数据也是采用固定长度8位,取值范围是:日期为01/01/000112/31/9999,时间为00:00:0023:59:59。如08/16/2003 10:35:30表示2003年8月16日10时35分30秒这一日期和时间。,6,Visual FoxPro,5日期时间型6Visual FoxPro,6逻辑型逻辑型(Logic)数据是描述客观事物真假的数据类型,表示逻辑判断的结果,用字母L表示。逻辑型数据只有真(.t.或.y.)和假(.f.或.n.)两种,长度固定为1位。,7,Visual FoxPro,

5、6逻辑型7Visual FoxPro,7备注型 备注型(Memo)数据是用于存放较多字符的数据类型,用字母M表示。备注型数据没有数据长度限制,仅受限于磁盘空间。它只用于表中字段类型的定义,字段长度固定为4个字节,实际数据存放在与表文件同名的备注文件(.fpt)中,长度根据数据的内容而定。,8,Visual FoxPro,7备注型8Visual FoxPro,8通用型通用型(General)数据是存储OLE(对象链接与嵌入)对象的数据类型,用字母G表示。通用型数据中的OLE对象可以是电子表格、文档、图形、声音等。它只用于表中字段类型的定义。通用型数据字段长度固定为4位,实际数据长度仅受限于磁盘空

6、间。9二进制字符型和二进制备注型这两类数据是以二进制格式存储的数据类型,只能用在表中字段数据的定义。所存储的数据不受代码页改变的影响。,9,Visual FoxPro,8通用型9Visual FoxPro,3.2.1 常量1字符型常量 字符型常量是用定界符括起来的一串字符。在Visual FoxPro中,定界符有3种:单撇号、双撇号和方括号。如Central South University、410075、教授等都是字符型常量。 如果某一种定界符本身是字符型常量中的字符,就应选择另一种定界符。例如,Thats right!表示字符常量:Thats right!,含有13个字符。,3.2 Vis

7、ual FoxPro的常量与变量,10,Visual FoxPro,3.2.1 常量3.2 Visual FoxPro的常量,2数值型常量 数值型常量就是平时所讲的常数,由数字、小数点和正负号组成。在Visual FoxPro中,数值型常量有两种表示方法:小数形式和指数形式。如75、-3.75是小数形式的数值型常量。指数形式通常用来表示那些绝对值很大或很小、而有效位数不太长的一些数值,对应于日常应用中的科学记数法。,11,Visual FoxPro,2数值型常量11Visual FoxPro,指数形式用字母E来表示以10为底的指数,E左边为数字部分,称为尾数,右边为指数部分,称为阶码。阶码只能

8、是整数,尾数可以是整数,也可以是小数。尾数与阶码均可正可负。例如,常量0.694710-6、4.9523109分别用指数形式表示为0.6947E-6、4.9523E9。,12,Visual FoxPro,指数形式用字母E来表示以10为底的指数,E左边为数字部分,称,3货币型常量货币型常量的书写格式与数值型常量类似,但要加上一个前置的$。货币型数据在存储和计算时,采用4位小数。如果一个货币型常量多于4位小数,那么系统会自动将多余的小数位四舍五入。例如,货币型常量$3.1415926将存储为$3.1416。货币型常量不能采用指数形式。4日期型常量日期型常量要放在一对花括号中,花括号内包括年、月、日

9、3部分内容,各部分内容之间用分隔符分隔。分隔符可以是/、-、.等。Visual FoxPro的默认日期格式是mm/dd/yyyy。,13,Visual FoxPro,3货币型常量13Visual FoxPro,5日期时间型常量 日期时间型常量也要放在一对花括号中,其中既含日期又含时间。日期的格式与日期型常量相同,时间包括时、分、秒,时分秒之间用“:”分隔。日期时间型常量的默认格式是: mm/dd/yyyy , hh:mm:ssa|p 其中hh、mm、ss的默认值分别为12、0和0。a和p分别表示AM(上午)和PM(下午),默认为AM。如果指定时间大于等于12,则自然为下午的时间。,14,Vis

10、ual FoxPro,5日期时间型常量14Visual FoxPro,日期值和日期时间值的输入格式与输出格式并不完全相同,特别是输出格式受系统环境设置的影响,用户可根据应用需要进行相应设置。下面介绍有关命令。(1)日期格式中的世纪值 通常日期格式中用2位数表示年份,但涉及到世纪问题就不便区分。Visual FoxPro提供设置命令对此进行相应设置。命令格式:SET CENTURY ON | OFF | TO nCentury,15,Visual FoxPro,日期值和日期时间值的输入格式与输出格式并不完全相同,,命令功能:用于设置显示日期时是否显示世纪。其中,ON表示日期值输出时显示年份值,即

11、日期数据显示10位,年份占4位。OFF(默认值)表示日期值输出时不显示年份值,即日期数据显示8位,年份占2位。TO nCentury指定日期数据所对应的世纪值,nCentury是一个199的整数,代表世纪数。,16,Visual FoxPro,命令功能:用于设置显示日期时是否显示世纪。其中,ON表示日期,(2)设置日期显示格式用户可以调整、设置日期的显示输出格式。命令格式:SET DATE TO AMERICAN | ANSI | BRITISH | FRENCH | GERMAN | ITLIAN | JAPAN | USA | MDY | DMY | YMD | SHORT | LONG命

12、令功能:设置日期的显示输出格式。系统默认为AMERICAN(美国日期格式)。如果日期格式设置为SHORT或LONG格式,Visual FoxPro将按Windows系统设置的短日期格式或长日期格式显示输出日期数据,而且SET CENTURY命令的设置被忽略。,17,Visual FoxPro,(2)设置日期显示格式17Visual FoxPro,(3)设置日期分隔符,命令格式:SET MARK TO 日期分隔符命令功能:设置显示日期时使用的分隔符,如/、-、.等。如没有指定任何分隔符,则恢复系统默认的斜杠分隔符。(4)设置日期2000年兼容性通常日期型和日期时间型数据的结果,与SET DATE

13、命令和SET CENTURY命令设置状态及当前系统时间有关。由于系统时间与相应设置不同,同一数据的结果可能有不同的解释。如日期值10/11/12可以解释为1912年10月11日、2012年10月11日、1912年11月10日、1910年11月12日或者2010年11月12日等。这显然会导致系统混乱,而且还可能造成2000年兼容性错误,影响系统正常运行。,18,Visual FoxPro,(3)设置日期分隔符命令格式:SET MARK TO 日期,Visual FoxPro增加了一种所谓严格的日期格式。不论哪种设置,按严格日期格式表示的日期型和日期时间型数据,都具有相同的值和表示形式。严格的日期

14、格式是: yyyy-mm-dd,hh:mm:ssa|p 其中,表明该格式是严格的日期格式,并按照YMD的格式解释日期型和日期时间型数据,它是严格日期格式的标志,不可缺少。有效的日期型和日期时间型数据分隔符为:/、-、.和空格。如2003-08-16、2003-08-16 10:35:30a,分别以严格的日期格式表示2003年8月16日及该日上午10时35分30秒。,19,Visual FoxPro,Visual FoxPro增加了一种所谓严格的日期格,Visual FoxPro默认采用严格的日期格式,并以此检测所有日期型和日期时间型数据的格式是否规范、合法。命令格式:SET STRICTDAT

15、E TO 0 | 1 | 2命令功能:用于设置是否对日期格式进行检测。其中,0表示不进行严格的日期格式检测。1表示进行严格的日期格式检测(默认值),要求所有日期型和日期时间型数据均按严格的格式。2表示进行严格的日期格式检测,并且对CTOD和CTOT函数的格式也有效。省略各选项时,恢复系统默认值,等价于1的设置。,20,Visual FoxPro,Visual FoxPro默认采用严格的日期格式,并,除了利用命令方式设置外,也可以用菜单方式进行设置设置。在“工具”菜单中选择“选项”,将打开“选项”对话框,在“区域”选项卡中可以设置日期和时间的显示格式。在“常规”选项卡中可以设置2000年兼容性。

16、,21,Visual FoxPro,除了利用命令方式设置外,也可以用菜单方式进行设置设置。在“工,6逻辑型常量 逻辑型常量表示逻辑判断的结果,只有“真”和“假”两种值。在Visual FoxPro中,逻辑真用.T.、.t.、.Y.或.y.表示,逻辑假用.F.、.f.、.N.或.n.表示。注意字母前后的圆点一定不能丢。,22,Visual FoxPro,6逻辑型常量22Visual FoxPro,3.4.2 变量 变量是在操作过程中可以改变其值的数据对象。在Visual FoxPro中变量分为字段变量、内存变量、数组变量和系统变量4类。此外,作为面向对象的程序设计语言,Visual FoxPro

17、在进行面向对象的程序设计中引入了对象的概念,对象实质上也是一类变量。确定一个变量,需要确定其3个要素:变量名、数据类型和变量值。,23,Visual FoxPro,3.4.2 变量23Visual FoxPro,1命名规则(1)使用字母、汉字、下划线和数字命名。(2)命名以字母或下划线开头。除自由表中字段名、索引的TAG标识名最多只能10个字符外,其他的命名可使用1128个字符。(3)为避免误解、混淆,避免使用Visual FoxPro的保留字。(4)文件名的命名应遵循操作系统的约定。,24,Visual FoxPro,1命名规则24Visual FoxPro,2字段变量 字段变量就是表中的字

18、段名,它是表中最基本的数据单元。字段变量是一种多值变量,一个表有多少条记录,那么该表的每一字段就有多少个值,当用某一字段名做变量时,它的值就是表记录指针所指的那条记录对应字段的值。字段变量的类型可以是Visual FoxPro的任意数据类型。字段变量的名字、类型、长度等是在定义表结构时定义的。,25,Visual FoxPro,2字段变量25Visual FoxPro,3内存变量 Visual FoxPro中,除了字段变量外,还有一种变量,它独立于表,是一种临时工作单元,称为内存变量。内存变量的类型有字符型、数值型、货币型、逻辑型、日期型和日期时间型等。 可直接用内存变量名对内存变量进行访问,

19、但若它与字段变量同名时,则应该用如下格式进行访问: M.内存变量名 M-内存变量名,26,Visual FoxPro,3内存变量26Visual FoxPro,(1)内存变量的赋值给内存变量赋值的命令有两种格式:=STORE TO 该命令先计算表达式的值,然后将表达式的值赋给一个或几个内存变量。第一种格式只能给一个内存变量赋值。第二种格式可以同时给多个内存变量赋相同的值,各内存变量名之间用逗号分隔。内存变量的数据类型取决于表达式值的类型。可以通过对内存变量重新赋值来改变其值和类型。,27,Visual FoxPro,(1)内存变量的赋值27Visual FoxPro,(2)内存变量的显示可以用

20、命令显示当前已定义的内存变量的有关信息,包括变量名、作用域、类型和取值。命令格式为:DISPLAY MEMORY LIKE TO PRINTERTO FILE LIST MEMORY LIKE TO PRINTERTO FILE 其中,LIKE选项表示显示与通配符相匹配的内存变量,在中允许使用符号?和*,分别代表单个字符和多个字符。TO PRINTER或TO FILE 选项可将内存变量的有关信息在打印机上打印出来,或者以给定的文件名存入文本文件中(扩展名为.txt)。,28,Visual FoxPro,(2)内存变量的显示28Visual FoxPro,LIST命令一次显示所有内存变量,如果内

21、存变量多,一屏显示不下,则连续向上滚动。而DISPLY命令分屏显示所有内存变量,如果内存变量多,显示一屏后暂停,按任意键后再继续显示下一屏。,29,Visual FoxPro,LIST命令一次显示所有内存变量,如果内存变量多,一,(3)内存变量文件的建立将所定义的内存变量的各种信息全都保存到一个文件中,该文件称为内存变量文件。其默认的扩展名为.mem。建立内存变量文件命令的格式为:SAVE TO ALL LIKE|EXCEPT 其中,ALL表示将全部内存变量存入文件中。ALL LIKE 表示内存变量中所有与通配符相匹配的内存变量都存入文件。ALL EXCEPT 表示把与通配符不匹配的全部内存变

22、量存入文件中。,30,Visual FoxPro,(3)内存变量文件的建立30Visual FoxPro,(4)内存变量的恢复内存变量的恢复是指将已存入内存变量文件中的内存变量从文件中读出,装入内存中。其命令格式为:RESTORE FROM ADDITIVE若命令中含有ADDITIVE任选项,系统不清除内存中现有的内存变量,并追加文件中的内存变量。,31,Visual FoxPro,(4)内存变量的恢复31Visual FoxPro,(5)内存变量的清除清除内存变量并释放相应的内存空间,所采用命令的格式为:CLEAR MEMORYRELEASE ALL LIKE|EXCEPT 其中第一条命令是

23、清除所有的内存变量,第二条命令是清除指定的内存变量。,32,Visual FoxPro,(5)内存变量的清除32Visual FoxPro,4数组变量在Visual FoxPro中,数组变量被定义为一组变量的集合,这些变量可以具有不同的数据类型。数组由数组元素组成,每个数组元素就相当于一个内存变量,它可以用数组名后接顺序号来表示,顺序号也叫下标。(1)数组的定义Visual FoxPro规定,数组在使用之前必须用数组说明命令进行定义,即定义数据名、维数和大小。其命令格式为:DIMENSION (,(,下标上界2),33,Visual FoxPro,4数组变量33Visual FoxPro,两条

24、命令的功能完全相同,用于定义一维或二维数组。下标上界是一数值量,下标的下界由系统统一规定为1。数组一经定义,它的每个元素都可当作一个内存变量来使用,因此它具有与内存变量相同的性质。Visual FoxPro命令行中可以使用内存变量的地方都能用数组元素代替。,34,Visual FoxPro,两条命令的功能完全相同,用于定义一维或二维数组。下标上界是一,(2)数组的赋值可以使用赋值命令给数组元素赋值,也可以给整个数组的各个元素赋以相同的值。例如命令:b=73为上面定义的二维数组b的6个元素都赋以同样的值73。在没有向数组元素赋值之前,数组元素的初值均为逻辑假(.F.)值。在Visual FoxP

25、ro中,二维数组各元素在内存中按行的顺序存储,它们也可按一维数组元素的顺序来存取数据。如上述二维数组b中的元素b(2,1)是排在第2行第1列,由于每一行是3个元素,所以b(2,1)也可按b(4)表示。,35,Visual FoxPro,(2)数组的赋值35Visual FoxPro,3.3.1 数值函数 1. 求绝对值函数 格式:ABS() 功能:求数值型表达式的绝对值。函数值为数值型。 2. 求平方根函数 格式:SQRT() 功能:求数值型表达式的算术平方根,数值型表达式的值应不小于零。函数值为数值型。 3. 求指数函数 格式:EXP() 功能:将数值型表达式的值作为指数x,求出ex的值。函

26、数值为数值型。,3.3 Visual FoxPro的内部函数,36,Visual FoxPro,3.3.1 数值函数3.3 Visual FoxPro的,4. 求对数函数格式:LOG()LOG10()功能:LOG求数值型表达式的自然对数,LOG10求数值型表达式的常用对数,数值型表达式的值必须大于零。函数值为数值型。 5. 取整函数格式:INT()CEILING()FLOOR(),37,Visual FoxPro,4. 求对数函数37Visual FoxPro,功能:INT取数值型表达式的整数部分。CEILING取大于或等于指定表达式的最小整数。FLOOR取小于或等于指定表达式的最大整数。函数

27、值均为数值型。举例:x=56.72? INT(x),INT(-x), CEILING(x),CEILING(-x),FLOOR(x),FLOOR(-x)三个函数的值依次为56,-56,57,-56,56,-57。,38,Visual FoxPro,功能:INT取数值型表达式的整数部分。CEILING取大于或,6. 求余数函数 格式:MOD(,) 功能:求除以所得出的余数,所得余数的符号和表达式2相同。如果被除数与除数同号,那么函数值即为两数相除的余数。如果被除数与除数异号,则函数值为两数相除的余数再加上除数的值。函数值为数值型。,39,Visual FoxPro,6. 求余数函数39Visua

28、l FoxPro,举例:? MOD(25,7),MOD(25,-7) ,MOD(-25,7),MOD(-25,-7)输出的函数值依次为4,-3,3,-4。显然如果M除以N的余数为0,则M能被N整数。例如 x=521 x1=INT(x/100) x2=INT(MOD(x,100)/10) x3=MOD(x,10) ? x1+10*x2+100*x3输出为125。显然x1、x2、x3分别为x的百、十、个位数字。,40,Visual FoxPro,举例:40Visual FoxPro,7. 四舍五入函数格式:ROUND(,) 功能:对求值并保留n位小数,从n+1位小数起进行四舍五入n的值由数值型表达

29、式2确定),若n小于0,则对的整数部分按n的绝对值进行四舍五入。 举例: ? ROUND(3.1415*3,2),ROUND(156.78,-1)输出的函数值分别为9.42和160。,41,Visual FoxPro,7. 四舍五入函数41Visual FoxPro,8. 求最大值和最小值函数格式:MAX(), )MIN(, )功能:MAX求n个表达式中的最大值,MIN求n个表达式中的最小值。表达式的类型可以是数值型、字符型、货币型、浮点型、双精度型、日期型和日期时间型,但所有表达式的类型应相同。函数值的类型与自变量的类型一致。,42,Visual FoxPro,8. 求最大值和最小值函数42

30、Visual FoxPro,举例: ? MAX(2003-08-16,2002-08-16),MIN(助教,讲师,副教授,教授)输出的函数值分别为08/16/03、副教授。9.函数格式:PI()功能:返回圆周率的近似值。,43,Visual FoxPro,举例:43Visual FoxPro,3.3.2 字符函数,字符函数是处理字符型数据的函数,其自变量或函数值中至少有一个是字符型数据。 1. 宏代换函数 格式:&.字符表达式 功能:代换出一个字符型内存变量的内容。若与后面的字符无空格分界,则&函数后的“.”必须有。,44,Visual FoxPro,3.3.2 字符函数字符函数是处理字符型数

31、据的函数,其自变,举例: i=1 j=2 x12=Good Good=MAX(96/01/02,65/05/01) ? x&i.&j,&x12输出的内容依次是Good和48。又如 m=245*SQRT(4) ? 34+&m输出为524.00。,45,Visual FoxPro,举例:45Visual FoxPro,2. 求字符串长度函数 格式:LEN(字符型表达式) 功能:求字符串的长度,即所包含的字符个数。若是空串,则长度为0。函数值为数值型。 3. 求子串位置函数格式:AT(,)ATC(,) 功能:若的值存在于的值中,则给出在中的开始位置,若不存在,则函数值为0。函数值为数值型。ATC函数

32、在子串比较时不区分字母大小写。,46,Visual FoxPro,2. 求字符串长度函数46Visual FoxPro,举例: xm=李小四 ? AT(李,xm),AT(PRO,Visual FoxPro),ATC(PRO,Visual FoxPro)输出的函数值分别为1、0、11。,47,Visual FoxPro,举例:47Visual FoxPro,4. 取子串函数格式:LEFT(,)RIGHT(字符型表达式,SUBSTR(,功能:LEFT函数从字符型表达式左边的第一个字符开始截取子串,RIGHT函数从字符型表达式右边的第一个字符开始截取子串。若数值型表达式的值大于0,且小于等于字符串的

33、长度,则子串的长度与数值型表达式值相同。若数值型表达式的值大于字符串的长度,则给出整个字符串。若数值型的表达式小于或等于0,则给出一个空字符串。,48,Visual FoxPro,4. 取子串函数48Visual FoxPro,SUBSTR函数对字符型表达式从指定位置开始截取若干个字符。起始位置和字符个数分别由数值型表达式1和数值型表达式2决定。若字符个数省略,或字符个数多于从起始位置到原字符串尾部的字符个数,则取从起始位置起,一直到字符串尾的字符串作为函数值。若起始位置或字符个数为0,则函数值为空串。显然SUBSTR函数可以代替LEFT函数和RIGHT函数的功能。 举例: xm=李小四 ?

34、SUBSTR(xm,1,2),LEFT(xm,1)输出的函数值均为:李。若xm代表职工姓名,则用这两个函数可以取出职工的姓。,49,Visual FoxPro,SUBSTR函数对字符型表达式从指定位置开始截取若干个字符。,5. 删除字符串前后空格函数格式:LTRIM()RTRIM()ALLTRIM()功能:LTRIM删除字符串的前导空格。RTRIM删除字符串的尾部空格。RTRIM亦可写成TRIM。ALLTRIM删除字符串中的前导和尾部空格。ALLTRIM函数兼有LTRIM和RTRIM函数的功能。,50,Visual FoxPro,5. 删除字符串前后空格函数50Visual FoxPro,6.

35、 生成空格函数 格式:SPACE() 功能:生成若干个空格,空格的个数由数值型表达式的值决定。 举例: name=SPACE(8) ? LEN(LTRIM(name)输出的函数值为0。,51,Visual FoxPro,6. 生成空格函数51Visual FoxPro,7. 字符串替换函数 格式:STUFF(,)功能:用去替换中由起始位置开始所指定的若干个字符。起始位置和字符个数分别由数值型表达式1和数值型表达式2指定。如果字符型表达式2的值是空串,则字符型表达式1中由起始位置开始所指定的若干个字符被删除。举例:STORE 中国 长沙 TO x? STUFF(x,6,4,北京)输出为:中国 北

36、京。,52,Visual FoxPro,7. 字符串替换函数52Visual FoxPro,8. 产生重复字符函数 格式:REPLICATE(,) 功能:重复给定字符串若干次,次数由数值型表达式给定。举例:? REPLICATE (*,6)输出为:*。,53,Visual FoxPro,8. 产生重复字符函数53Visual FoxPro,9. 大小写字母转函数格式:LOWER()UPPER()功能:LOWER将字符串中的大写字母转换成小写。UPPER将字符串中的小写字母转换成大写。举例:yn=y ? UPPER(yn),LOWER(YES)输出的函数值为:Y、yes。在字符串中,同一字母的大

37、小写为不同字符,如果利用大小字母转换函数,就可以不考虑字符串中的字母是大写还是小写。,54,Visual FoxPro,9. 大小写字母转函数54Visual FoxPro,3.3.3 日期和时间函数日期时间函数是处理日期型或日期时间型数据的函数。1. 系统日期和时间函数格式:DATE()TIME()DATETIME() 功能:DATE函数给出当前的系统日期,函数值为日期型。TIME函数给出当前的系统时间,形式为hh:mm:ss,函数值为字符型。DATETIME函数给出当前的系统日期和时间,函数值为日期时间型。,55,Visual FoxPro,3.3.3 日期和时间函数55Visual Fo

38、xPro,2. 求年份、月份和天数函数格式:YEAR(|)MONTH(|)DAY(|)功能:YEAR函数返回日期表达式或日期时间型表达式所对应的年份值。MONTH函数返回日期型表达式或日期时间型表达式所对应的月份,月份以数值112来表示。DAY函数返回日期型表达式或日期时间型表达式所对应月份里面的天数。,56,Visual FoxPro,2. 求年份、月份和天数函数56Visual FoxPro,举例:d=2003-08-16? YEAR(d),MONTH(d),DAY(d)输出的函数值分别为2003、8、16。,57,Visual FoxPro,举例:57Visual FoxPro,3. 求

39、时、分和秒函数格式:HOUR()MINUTE()SEC()功能:HOUR函数返回日期时间型表达式所对应的小时部分(按24小时制)。MINUTE函数返回日期时间型表达式所对应的分钟部分。SEC函数返回日期时间型表达式所对应的秒数部分。,58,Visual FoxPro,3. 求时、分和秒函数58Visual FoxPro,举例:d=2003-08-16,5:43:56 P? HOUR(d),MINUTE(d),SEC(d)输出的函数值分别为17、43、56。,59,Visual FoxPro,举例:59Visual FoxPro,3.3.4 数据类型转换函数1. 将字符转换成ASCII码的函数格

40、式:ASC()功能:给出指定字符串最左边的一个字符的ASCII码值。函数值为数值型。 2. 将ASCII值转换成相应字符函数 格式:CHR() 功能:将数值型表达式的值作为ASCII码,给出所对应的字符。,60,Visual FoxPro,3.3.4 数据类型转换函数60Visual FoxPro,举例: ch1=M ch2=CHR(ASC(ch1)+ASC(a)-ASC(A) ? ch2字符变量ch2的值为m。若ch1的值为某个大写字母,则利用求ch2的表达式可求出对应的小写字母。注意,在ASCII表中,字母是连续排列的,任何一个字母其大小写ASCII码值之差是相等的。,61,Visual

41、FoxPro,举例:61Visual FoxPro,3. 将字符串转换成日期或日期时间函数 格式:CTOD() CTOT() 功能:CTOD函数将指定的字符串转换成日期型 数据,CTOT函数将指定的字符串转换成日期时间型数据。字符型表达式中的日期部分格式要与系统设置的日期显示格式一致,其中的年份可以用4位,也可以用2位。如果用2位,则世纪值由SET CENTURY TO 命令指定。,62,Visual FoxPro,3. 将字符串转换成日期或日期时间函数62Visual F,举例: ch1=M ch2=CHR(ASC(ch1)+ASC(a)-ASC(A) ? ch2字符变量ch2的值为m。若c

42、h1的值为某个大写字母,则利用求ch2的表达式可求出对应的小写字母。注意,在ASCII表中,字母是连续排列的,任何一个字母其大小写ASCII码值之差是相等的。,63,Visual FoxPro,举例:63Visual FoxPro,4. 将日期或日期时间转换成字符串函数 格式:DTOC(|,1) TTOC(,1) 功能:DTOC函数将日期数据或日期时间数据的日期部分转换为字符型,TTOC函数将日期时间数据转换为字符型。字符串中日期和时间的格式受系统设置的影响。对DTOC来说,若选用1,结果为yyyymmdd格式。对TTOC来说,若选用1,结果为yyyymmddhhmmss格式。,64,Visu

43、al FoxPro,4. 将日期或日期时间转换成字符串函数64Visua,5. 将数值转换成字符串函数 格式:STR(,) 功能:将数值型表达式1的值转换成字符串。转换后字符串的长度由数值型表达式2决定,保留的小数位数由数值表达式3决定。省略数值型表达式3时,转换后将无小数部分。省略数值型表达式2和数值表达式3时,字符串长度为10,无小数部分。如果指定的长度大于小数点左边的位数,则在字符串的前面加上空格,如果指定的长度小于小数点左边的位数,则返回指定长度个星号*,表示出错。,65,Visual FoxPro,5. 将数值转换成字符串函数65Visual FoxPro,举例:x=1234.587

44、? STR(x,10,2), STR(x,10,4), STR(x,7,2), STR(x,7), STR(x,3), STR(x)输出为:1234.591234.58701234.591235*其中的代表空格。,66,Visual FoxPro,举例:66Visual FoxPro,6. 将字符串转换成数值函数 格式:VAL() 功能:将由数字、正负号、小数点组成的字符串转换为数值,转换遇上非上述字符停止。若串的第一个字符即非上述字符,函数值为0。前导空格不影响转换。,67,Visual FoxPro,6. 将字符串转换成数值函数67Visual Fox,3.3.5 测试函数1. 数据类型测

45、试函数 格式:VARTYPE(,) 功能:测试引号内表达式的数据类型,返回用字母代表的数据类型。函数值为字符型。未定义或错误的表达式返回字母U。若表达式是一个数组,则根据第一个数组元素的类型返回字符串。若表达式的运算结果是NULL值,则根据函数中逻辑表达式的值决定是否返回表达式的类型。具体规则是:如果逻辑表达式为.T.,则返回表达式的原数据类型。如果逻辑表达式为.F.或省略,则返回X,表明表达式的运算结果是NULL值。,68,Visual FoxPro,3.3.5 测试函数68Visual FoxPro,举例:a=DATE()a=NULL? VARTYPE(3.46),VARTYPE($385

46、),VARTYPE(FoxPro),VARTYPE(a,.T.),VARTYPE(a)输出为:N Y C D X。,69,Visual FoxPro,举例:69Visual FoxPro,2. 表头测试函数 格式:BOF()|) 功能:测试指定或当前工作区的记录指针是否超过了第一个逻辑记录,即是否指向表头,若是,函数值为.T.,否则为.F.。用于指定工作区,为工作区的别名或在该工作区上打开的表的别名。当和都缺省不写时,默认为当前工作区。 3. 表尾测试函数 格式:EOF(|) 功能:测试指定或当前工作区中记录指针是否超过了最后一个逻辑记录,即是否指向表的末尾,若是,函数值为.T.,否则为.F.

47、。自变量含义同BOF函数,缺省时默认为当前工作区。,70,Visual FoxPro,2. 表头测试函数70Visual FoxPro,4. 记录号测试函数 格式:RECNO(|) 功能:返回指定或当前工作区中当前记录的记录号,函数值为数值型。省略参数时,默认为当前工作区。如果记录指针在最后一个记录之后,即EOF()为.T.,RECNO()返回比记录总数大1的值。如果记录指针在第一个记录之前或者无记录,即BOF()为.T.,RECONO()返回1。,71,Visual FoxPro,4. 记录号测试函数71Visual FoxPro,5. 记录个数测试函数 格式:RECCOUNT() 功能:返

48、回当前或指定表中记录的个数。如果在指定的工作区中没有表被打开,则函数值为0。如果省略参数,则默认为当前工作区。RECCOUNT()返回的值不受SET DELETED和SET FILTER的影响,总是返回包括加有删除标记在内的全部记录数。,72,Visual FoxPro,5. 记录个数测试函数72Visual FoxPro,6. 查找是否成功测试函数 格式:FOUND() 功能:在当前或指定表中,检测是否找到所需的数据。如果省略参数,则默认为当前工作区。数据搜索由FIND、SEEK、LOCATE或CONTINUE命令实现。如果这些命令搜索到所需的数据记录,函数值为.T.,否则函数值为.F.。如

49、果指定的工作区中没有表被打开,则FOUND()返回.F.。如果用非搜索命令如GO移动记录指针,则函数值为.F.。,73,Visual FoxPro,6. 查找是否成功测试函数73Visual FoxPro,7.文件是否存在测试函数 格式:FILE() 功能:检测指定的文件是否存在。如果文件存在,则函数值为.T.,否则函数值为.F.。文件名必须是全称,包括盘符、路径和扩展名,且是字符型表达式。,74,Visual FoxPro,7.文件是否存在测试函数74Visual FoxPro,8. 判断值介于两个值之间的函数 格式:BETWEEN(, ) 功能:判断表达式的值是否介于相同数据类型的两个表达

50、式值之间。BETWEEN()首先计算表达式的值。如果一个字符、数值、日期、表达式的值介于两个相同类型表达式的值之间,即被测表达式的值大于或等于下限表达式的值,小于或者等于上限表达式的值,BETWEEN()将返回一个真.T.值,则返回.F.。 举例: gz=375 ? BETWEEN(gz,260,650) 输出为.T.。,75,Visual FoxPro,8. 判断值介于两个值之间的函数75Visual F,9. 条件函数IIF 格式:IIF(,) 功能:若逻辑型表达式的值为.T.,函数值为的值,否则为的值。 举例: xb=女 ? IIF(xb=男,1,IIF(xb=女,2,3) 输出为2。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号