VisualFoxPro的基础知识.ppt

上传人:小飞机 文档编号:6523120 上传时间:2023-11-08 格式:PPT 页数:106 大小:335.49KB
返回 下载 相关 举报
VisualFoxPro的基础知识.ppt_第1页
第1页 / 共106页
VisualFoxPro的基础知识.ppt_第2页
第2页 / 共106页
VisualFoxPro的基础知识.ppt_第3页
第3页 / 共106页
VisualFoxPro的基础知识.ppt_第4页
第4页 / 共106页
VisualFoxPro的基础知识.ppt_第5页
第5页 / 共106页
点击查看更多>>
资源描述

《VisualFoxPro的基础知识.ppt》由会员分享,可在线阅读,更多相关《VisualFoxPro的基础知识.ppt(106页珍藏版)》请在三一办公上搜索。

1、第二章 Visual FoxPro的基础知识,目录,2.1VFP的数据类型2.2VFP的常量与变量2.3运算符与表达式2.4VFP的常用函数2.5VFP的命令结构和书写规则2.6VFP的文件类型,2.1 VFP的数据类型,VFP中的数据按其构造、基本特性、用途和运算方法等分为不同的类型,数据类型决定了数据的存储方式和运算方式。常用的数据类型有如下11种:1.字符型(Character,C)字符型数据包括中、英文字符、数字字符和其他可显示的ASCII字符,其长度(即字符个数)范围是0254个字符。,2.1 VFP的数据类型,2.数值型(Numeric,N)数值型数据用来表示数量,由阿拉伯数字、小

2、数点和正负号组成。数值型数据的长度为120位,包含整数、小数点和小数位数。在Visual FoxPro中,具有数值特征的数据类型还有整型(Integer,I)、浮点型(Float,F)和双精度型(Double,B),这3种数据类型只能用于字段变量。3.货币型(Currency,Y)货币型数据用来存储货币值,默认保留4位小数,存储空间占据8个字节。,2.1 VFP的数据类型(续1),4.日期型(Date,D)日期型数据用来表示日期,其存储格式为“YYYYMMDD”,占8个字节。日期型数据的显示格式有多种,受SET DATE、SET MARK、SET CENTURY等命令的影响。5.日期时间型(D

3、ate Time,T)日期时间型数据用来表示日期和时间,其存储格式为“YYYYMMDDHHMMSS”,占8个字节。其日期部分格式受受SET DATE、SET MARK、SET CENTURY等命令的影响,时间部分格式受SET HOURS、SET SECONDS命令影响。,2.1 VFP的数据类型(续2),6.逻辑型(Logic,L)逻辑型数据用来表示逻辑判断的结果,只有真(.t.或.y.)和假(.f.或.n.)两个值,长度固定为1位。7.备注型(Memo,M)备注型数据用于存放数据块,其长度固定为4个字节,用于存储指向备注文件中相应内容的记录指针;备注型字段本身的内容没有长度限制,该字段的数据

4、存放在与表文件同名的备注文件(.fpt)中。,2.1 VFP的数据类型(续3),8.通用型(General,G)通用型数据用来存储OLE(对象链接与嵌入)对象,其长度固定为4个字节,通用型数据中的OLE对象可以是电子表格、文档、图形、声音等。备注型字段本身的内容没有长度限制,该字段的数据存放在与表文件同名的备注文件(.fpt)中。,2.1 VFP的数据类型(续4),返回目录,2.2 VFP的常量与变量,2.2 VFP的常量与变量,2.2.1常量2.2.2变量,常量,常量用来表示一个具体的、不变的数据量。不同类型的常量用不同的书写形式区分。VFP中常量包括字符型、数值型、日期型、日期时间型、逻辑

5、型、货币型等6种数据类型。,常量(续1),字符常量 字符型常量也称字符串,它是由定界符括起来的一串字符。VFP中字符型数据的定界符包括半角的双引号()、单引号()和方括号()三种。如FoxPro、FoxPro和FoxPro都表示同一个字符串。这三种定界符的作用相同,使用时必须成对使用,不能交叉使用。如果某一种定界符是字符型常量中的普通字符,应选择另一种定界符,如am a student,或Iam a student。不包含任何字符的字符串()称为空串。,2.数值型常量 数值型常量由09共10个数字、小数点、正负号组成。其表示形式可以是整数如123、小数如123.35、负数如-123.45;还可

6、以用科学计数法表示,如1.234E-5表示1.23410-5。3.日期型常量 日期型常量用来表示日期,年、月、日之间的分隔符可以使用(/)、(.)、(-)和空格。日期型常量的格式分为严格格式和传统格式两种。,常量(续2),(1)严格日期格式:YYYY-MM-DD,该格式以字符()开头,严格规定年月日顺序,表达一个确切的日期,它的表示形式不受SET DATE TO命令的影响,如2003-12-23。(2)传统的日期格式:系统默认的传统日期格式是美国日期格式mm/dd/yy,年份可以是4位或2位数字,如12/23/03、12/23/2003等。严格的日期格式可以在任何情况下使用,传统的日期格式只能

7、在SET STRICTDATE TO 0状态下使用。,常量(续3),(3)与日期型常量书写格式相关的函数日期格式的检查函数【语法格式】SET STRICTDATE TO 0|1|2【说明】0:表示不进行严格检查,可使用各种格式。1:表示进行严格检查,不能使用传统格式,是系统的默认设置。2:表示进行严格检查,但是对CTOD()、DTOC()函数格式有效。,常量(续4),日期格式的分隔符设置命令【语法格式】SET MARK TO 日期分隔符【说明】用于设置显示日期数据时使用的分隔符,默认分隔符为/。日期格式的日期顺序设置命令【语法格式】SET DATE TO MDY|DMY|YMD【说明】设置日期

8、顺序格式。对于传统格式和CTOD()函数,在输入日期时,要求输入年月日的顺序与该命令的设置一致。,常量(续5),日期格式年份表示位数设置命令【语法格式】SET CENTURY ON|OFF【说明】当选项为ON时,年份显示4位数,否则显示2位数。例.在命令窗口中执行如下命令:?2003/10/23*显示10/23/03,年月日的显示顺序与SET DATE*TO 设置有关,常量(续6),例.在命令窗口中执行如下命令:SET STRICTDATE TO 0?10/23/03&显示10/23/03用传统格式定义日期型数据时,需先执行SET STRICTDATE TO 0且传统日期格式年月日的顺序需与S

9、ET DATE MDY|YMD|DMY 相应,默认为MDY。,常量(续7),例.在命令窗口中执行如下命令:SET STRI TO 1?CTOD(“12/23/03”)&显示12/23/03使用CTOD()函数前需执行 SET STRI TO 0|1,常量(续8),例.在命令窗口中执行如下命令SET STRI TO 0SET DATE DMY*设置日月年,要求传统格式和CTOD()函数与其一致。*且输出显示的格式也为日月年?23/10/03&显示23/10/03?CTOD(“23/12/03”)*显示23/12/03,CTOD()函数的格式 要求与设置一致,常量(续9),例.在命令窗口中执行如下

10、命令:SET MARK TO“”&设置显示日期分隔符为SET DATE MDY?2003/12/23&显示122303。例.在命令窗口中执行如下命令:SET CENTURY ONSET DATE YMD&设置日期显顺序为 年月日?2003/12/23&显示2003/12/23,且年份显示4位,常量(续10),4.日期时间型常量 日期时间型常量用来表示日期和时间。日期部分与日期型常量类似,包括严格和传统两种格式。其严格格式为:YYYY-MM-DD,HH:MM:SSA|P。其中HH、MM、SS的默认值分别为12、0和0。A和P分别表示AM(上午)和PM(下午),默认为AM。如果指定时间大于等于12

11、,则系统认为是下午的时间。,常量(续11),SET STRI TO 0SET CENTURY ONSET DATE YMD?2003/12/23,10:10&显示2003/12/23 10:10:00 AM?2003/12/23,14:10*显示2003/12/23 02:10:00PM,默认12时间制?2003/12/23,2:10 PM&显示2003/12/23 02:10:00PM,常量(续12),例.在命令窗口中执行如下命令:SET HOURS TO 24&将时间显示设置为24小时制?2003/12/23,2:10 PM&显示2003/10/23 14:10:005.逻辑型常量 逻辑型

12、常量用来表示逻辑值。逻辑常量只有真和假两种值,用.T.(或.t.)、.Y.(或.y.)表示真,用.F.(或.f.)、.N.(或.n.)表示假。但主窗口只显示.T.或.F.。,常量(续13),6.货币型常量 货币常量用来表示货币。货币型常量以$符号开头,最多只能保留4位小数,若小数部分超过4位,自动四舍五入。可以和数值型数据进行运算。结果仍为货币型。,常量(续14),返回,2.2.2变量,在命令操作或程序执行过程中,其值可以改变的量称为变量。VFP的变量主要有字段变量和内存变量两种。变量包含三个要素:变量名、变量的数据类型和变量值。无论哪种变量都必须有一个用来标识它的名称,称为变量名。,1.字段

13、变量 字段变量对应于数据表中的字段,数据表中的每一列称为字段,以字段名标识。字段名的命名规则如下:字段名以字母或汉字开头,由汉字、字母、数字和下划线组成,对于字母不区分大小写;在自由表中,字段名长度不超过10个字节;数据库表中的字段名长度不超过128个字符。字段名应避免与VFP系统的保留字相同。所谓保留字是指VFP系统中的命令名、标准函数名等。,2.2.2变量(续1),字段变量存在于数据表中,随着数据表的打开生效;随着数据表的关闭而释放。字段的值随记录指针的移动变化。2.内存变量 内存变量独立于数据表文件,存储于内存中。通常用来保存执行命令或程序运行的中间结果,可以随时定义和释放。内存变量的命

14、名规则如下:内存变量名以字母、汉字、下划线开始,由字母、汉字、下划线和数字组成,字母不区分大小写;变量名不超过128个字符。,2.2.2变量(续2),当内存变量与当前打开的数据表中的字段变量同名时,字段变量被优先使用。当内存变量与字段变量同名时,若要引用内存变量,则需在内存变量名前加M-或M.。VFP中的内存变量又可为系统内存变量和用户定义的内存变量。用户定义的内存变量的数据类型可以有C、N、D、T、Y、L等6种。,2.2.2变量(续3),2.2.2变量(续4),(1)内存变量的赋值【语法格式1】=【功能】计算表达式的值,并将结果赋于内存变量。格式1只能给一个变量赋值。【说明】”=”:赋值号,

15、它的左边只能是内存变量名;表达式:由常量、变量、函数和运算符组成。内存变量的值及类型在赋值时定义,同一个内存变量可多次赋值,它的值和类型取决于最后一次所赋的值。,例在命令窗口中执行如下命令a=10&将数值10赋给内存变量a,a的数据类型为 数值型,值为10?A&主窗口显示10A=10/2&将表达式10/2的结果赋于内存变量a(不 区分大小写)?a&显示日期=2003/12/23&将日期型数据赋给内存变量,变量名是日期?日期&显示12/23/03T=.t.&将逻辑值(真)赋给变量T?t&显示.T.,由于不区分大小写,变量名为T,显 示.T.,2.2.2变量(续5),2.2.2变量(续6),【语法

16、格式2】STROE TO【功能】计算表达式的值并将同一个结果赋给一个或多个变量。【说明】该命令可以一次给多个变量赋予相同的值。当中有多个变量名时,变量之间用逗号隔开。,2.2.2变量(续7),例在命令窗口中执行如下命令STROE“10”TO A1,变量1*将字符数据10同时赋于a1、变量1?a1,变量1&显示 10,10?a1+变量1&显示1010,(2)显示内存变量的值【语法格式】?|?【说明】?命令先输出一个换行,再输出指定内存变量的值;?命令则不输出换行直接输出指定内存变量的值,2.2.2变量(续8),例在命令窗口中执行如下命令:a=.t.b1=”t”?a,b1 X=23+12Y=“23

17、”?X,Y+”12”&在前一个显示命令后接着显示35,2312?12/23/03&另起一行,显示表达式(除法)的结果0.17?“12/23/03”&另起一行显示字符串12/23/03,2.2.2变量(续9),2.2.2变量(续10),(3)保存内存变量【语法格式】SAVE TO|TO MEMO ALL LIKE ALL EXCEPT【功能】将当前内存中的内存变量保存到指定的内存变量文件或备注字段中.,【说明】:指存放内存变量及值的文件名,其命名与一般的文件命名规则相同。默认扩展名为.mem;TO MEMO:表示将内存变量及值保存到数据表的备注字段中;:是指可以包含通配符”?”和”*”的内存变量

18、名;ALL LIKE:保存所有满足指定的那些内存变量;ALL EXCEPT:保存所有不满足指定的那些内存变量;,2.2.2变量(续11),(4)内存变量的恢复【语法格式】RESTORE FROM|FROM MEMO|ADDITIVE【功能】将保存在内存变量文件或备注字段中的内存变量恢复到内存。其默认的内存变量文件的扩展名为.mem。,2.2.2变量(续12),【说明】FROM:表示从指定的内存变量文件恢复内存变量到内存;FROM MEMO:表示从指定的备注字段恢复内存变量到内存;ADDITIVE:保留当前的内存变量,且将指定的内存变量文件或备注字段中的内存变量恢复到内存。若恢复的内存变量与当前

19、内存中已存在内存变量同名,则用恢复的内存变量覆盖原有的内存变量。若省略该选项恢复前先将当前内存中的内存变量全部清除。,2.2.2变量(续13),(5)内存变量的清除【语法格式1】CLEAR ALL【语法格式2】CLEAR MEMORY【语法格式3】RELEASE|ALL EXTENDED|ALL LIKE|EXCEPT,2.2.2变量(续14),【功能】格式1:清除当前内存中用户定义的全部内存变量,且关闭所有打开的数据表以及与之相关的索引、格式和备注文件等,自动选择1号工作区为当前工作区。格式2:清除当前内存中的全部内存变量,释放存储空间,但不关闭数据表文件等。格式3:根据选项的规定清除全部或

20、部分内存变量,2.2.2变量(续15),2.2.2变量(续16),【说明】RELEASE:删除中所列的全部内存变量,各变量之间用逗号隔开。RELEASE ALL:则删除所有内存变量;如果在程序中用RELEASE ALL,则删除当前程序定义的局部变量;若还用了EXTENDED选项,则公用内存变量也被删除。LIKE:则删除所有满足的那些变量EXCEPT:则删除所有不满足的那些变量。,返回,返回目录,2.3 运算符与表达式,表达式是VFP中重要的语法成份,在VFP中,表达式是由常量、变量、函数、运算符和圆括号组成的表示数据之间运算关系的式子。VFP的表达式包括字符型表达式、数值型表达式、日期型表达式

21、、关系型表达式和逻辑型表达式等5种。,2.3 运算符与表达式,2.3.1数值运算符及数值表达式2.3.2字符串运算符及字符表达式2.3.3日期型日期时间运算符及日期型 日期时间表达式2.3.4关系型运算符及关系运表达式2.3.5逻辑型运算符及逻辑表达式,2.3.1 数值运算符及数值表达式,1.数值表达式 数值表达式是由数值型常量、数值型变量、数值型函数和算术运算符组成的式子。参与运算的数据必须是数值型。运算结果仍为数值型。2.数值运算符 算术运算符包括乘方“”或“*”、乘“*”、除“/”、取模或求余数“%”、加“”、减“”。运算顺序:乘方乘、除、取模加、减在算术运算中圆括号优先,同级运算从左至

22、右。,例在命令窗口中执行如下命令?(2*2+2)2/31210/5&显示2.00?(2*2+2)2/(3-12+10/5)&显示5.14?(3*18+2+4)*2/10)-12+2*9/3&显示354.00,3.表达式的书写规则(1)表达式中所有的字符必须写在同一水平线上;(2)根据运算符运算的优先顺序,合理地加括号,以保证运算顺序的正确性。,2.3.1 数值运算符及数值表达式(续1),例 在命令窗口中执行如下命令:?$123.4567+$0.2345&显示123.6912?$123.4567+10.2345&显示133.6912?123.4567+$0.2345&显示123.6912?123

23、.4567-$10.23&显示113.2267,4.货币表达式 货币型数据前需加$。货币型表达式是由货币型常量、货币型变量和算术运算符组成的式子。货币型表达式的运算对象和运算结果都是货币型。其运算符和运算规则与数值型表达式相同。,2.3.1 数值运算符及数值表达式(续2),返回,2.3.2 字符串运算符及字符表达式,1.字符型表达式 字符型表达式是由字符型常量、字符型变量、返回字符型数据的函数和字符运算符组成的表达式。2.运算符 字符运算符主要有两类:连接运算符(、)和包含运算符($),它们被分别用来进行连接运算和包含运算。,(1)连接运算符+和-运算符“”将两个字符串按它们在原字符串中的顺序

24、首尾相接;运算符“”号将两个字符串中除左边字符串尾部空格以外的字符首尾相接,然后将左边字符串中的尾部空格移至结果字符串的尾部。连接运算的结果仍为字符型。,2.3.2 字符串运算符及字符表达式(续1),例在命令窗口中执行如下命令m1=操作系统m2Windows?m2+m1&显示“Windows 操作系统”?m2-m1+2000*显示“Windows 操作系统2000”,m2后面的空格移到*了m1后面,2.3.2 字符串运算符及字符表达式(续2),(2)包含运算【语法格式】$【功能】比较两个字符表达式,如果字符型表达式1包含在字符表达式2中,即字符型表达式1是字符型表达式2的子字符串,则运算结果为

25、真(.T.),否则为假(.F.)。【说明】“$”运算符两边的数据类型必须都是字符型,运算结果是逻辑型。,2.3.2 字符串运算符及字符表达式(续3),例在命令窗口执行如下命令a1=湖北大学a2=湖北?a1$a2&显示.F.?a2$a1&显示.T.,2.3.2 字符串运算符及字符表达式(续4),返回,2.3.3 日期型日期时间运算符及日期型日期时间表达式,1.日期型日期时间型表达式 日期型和日期时间型表达式允许日期型、日期时间型数据或数值型数据参与运算,运算结果为日期型、日期时间型或数值型。,2.日期型与日期时间型运算符 日期或日期时间的运算符有“”和“”两种。日期或日期时间型表达式主要包括如下

26、几种形式:【语法格式1】+【语法格式2】-【语法格式3】-,2.3.3 日期型日期时间运算符及日期型日期时间表达式(续1),【说明】格式1运算结果的数据类型是日期或日期时间型,意为若干天或若干秒后的日期或时间;格式2运算结果的数据类型是日期或日期时间型,意为若干天或若干秒前的日期或时间;格式3运算结果的数据类型是数值型,意为两个指定的日期或时间之间的天数或秒数。,2.3.3 日期型日期时间运算符及日期型日期时间表达式(续2),例在命令窗口中执行如下命令?2003/10/102003/10/1*显示两个日期相隔的天数9。?2003/10/1010*结果为新的日期,显示10/20/03?2003/

27、12/12,10:10-2003/12/12,8:10*显示7200,两个时间相差7200秒。?2003/12/12,10:10+60*显示12/12/03 10:11:00 AM。?2003/10/22-2003/10/23*显示,2.3.3 日期型日期时间运算符及日期型日期时间表达式(续3),返回,2.3.4 关系型运算符及关系运表达式,1.关系型表达式 关系表达式的一般形式:关系运算符用来比较两个表达式,运算结果为逻辑值。2.关系运算符 关系运算符包括:(大于)、=(大于或等于)、或#或!=(不等于)、=(等于)、=(全等于)。它们具有相同的优先级。,其中:运算符=和$仅适用于字符型数据

28、,其他运算符适用于任何数据类型,但是参与运算的两个表达式必须具有相同的数据类型。进行比较运算时,数值型数据按数值大小进行比较;日期型数据按年月日顺序进行比较,越早的日期或时间越小,越晚的日期或时间越大;字符型数据按字符的ASCII码或汉字机内码进行比较;逻辑型数据比较时,.T.比.F.大。,2.3.4 关系型运算符及关系运表达式(续1),3.设置字符的排序序列【语法格式】SET COLLATE TO machine|pinyin|stroke machine(机器):字符按机内码排序,字母按ASCII码排序,空格在最前面、大写字母在小写字母后面;对于一级汉字机内码与PinYin的顺序相同。pi

29、nyin(拼音):按拼音排序。小写字母在大写字母前面。stroke(笔画):对于汉字按笔画数进行比较。,2.3.4 关系型运算符及关系运表达式(续2),4.字符串比较与EXACT 设置 运算符对字符串进行精确比较,只有两个字符串完全相同时,运算结果为真,否则为假;而运算符对两个字符串比较时,运算结果与 SET EXACT ON|OFF 的设置有关:处于OFF 状态时,如果右边的字符串与左边字符串的前面部分内容相同时,结果为真;处于ON 状态时,先在短字符串的后面加空格,使两个比较的字符串长度相同,再进行比较,直到两个字符串全部比较完毕。默认设置是OFF 状态。,2.3.4 关系型运算符及关系运

30、表达式(续3),返回,2.3.5 逻辑型运算符及逻辑表达式,1.逻辑型表达式 逻辑型表达式是由逻辑常量、逻辑变量、返回逻辑值的函数、关系表达式和逻辑运算符组成的式子。运算结果为逻辑值。2.逻辑运算符 逻辑运算符有NOT或!(逻辑非)、AND(逻辑与)、OR(逻辑或)三种。运算顺序:逻辑非逻辑与逻辑或,3.运算符的优先级 当不同类型的运算符出现在同一个表达式中时,它们的优先顺序如下:(1)字符型表达式、数值型表达式、日期型表达式、日期时间型表达式具有相同的优级,且它们的优先级最高。(2)关系型表达式的优先级低于(1)中所述的各优先级,但高于逻辑型表达式。(3)逻辑型表达式的优先级最低。,2.3.

31、5 逻辑型运算符及逻辑表达式(续1),返回,返回目录,2.4 VFP的常用函数,函数是VFP的重要组成部分。VFP向用户提供了近300个标准函数(也称内置函数)。有时为达到用户的特定环境或特定目的,还需要具有特定功能的函数。VFP允许用户编制自己定义的函数,称为自定义函数。1.函数调用的一般格式为(参数1,参数2)每个函数运算后都会返回一个值,称为函数值。函数名参数(也称自变量)和函数值是函数的三个要素。2.函数的数据类型 函数的类型指函数返回值的数据类型。在表达式中调用函数时必须了解函数值的类型,以免发生数据类型不一致的错误。,2.4 VFP的常用函数,2.4.1数值处理函数2.4.2字符处

32、理函数2.4.3日期和时间函数2.4.4数据类型转换函数2.4.5测试函数,2.4.1 数值处理函数,1.绝对值函数【语法格式】ABS()【功能】ABS()返回指定的数值表达式的绝对值。2.符号函数【语法格式】SIGN()【功能】SIGN()返回数值表达式的符号,当数值表达式的值为正、负、0时,返回值分别为1、1、0。函数值为数值型。,2.4.1 数值处理函数(续1),3.取整函数【语法格式】INT(数值表达式)【语法格式】CEILING()【语法格式3】FLOOR()【功能】INY()返回指定数值表达式的整数部分;CEILING()返回大于或等于指定数值表达式的最小整数;FLOOR()返回小

33、于或等于指定表达式的最大整数。,4.求平方根函数【语法格式】SQRT()【功能】返回指定数值表达式的平方根。自变量不能为负。5.四舍五入函数【语法格式】ROUND(,)【功能】返回数值表达式1在数值表达式2指明指定四舍五入位置的结果。若数值表达式2大于等于0,表示的要保留的小数位;若数值表达式小于0,表示对整数部分的舍入位数。,2.4.1 数值处理函数(续2),6.求余数函数【语法格式】MOD(,)【功能】返回数值表达式相除后的余数。数值表达式1是被除数,数值表达式2是 除数。【说明】如果数值表达式1和数值表达式2符号相同,那么函数值(余数)的符号和它们相同。如果两个数值表达式异号,则函数值为

34、两个数值表达式相除的余数(符号和被除数相同)再加上除数。,2.4.1 数值处理函数(续3),7.求最大值和最小值【语法格式】MAX(,)【语法格式2】MIN(,)【功能】MAX()计算各自变量表达式的值,返回其中的最大值;MIN()计算各自变量表达式的值,返回其中的最小值。【说明】各自变量表达式的类型要一致。自变量表达式可以是数值型、日期型、日期时间型、货币型、字符型等。,2.4.1 数值处理函数(续4),返回,2.4.2 字符处理函数,取子串函数【语法格式1】LEFT(,)【语法格式2】RIGHT(,)【语法格式3】SUBSTR(,),【功能】LEFT()从指定表达式的左端取一个指定长度的子

35、串作为函数值。RIGHT()从指定表达式的右端取一个指定长度的子串作为函数值。SUBSTR()从指定表达式的指定起始位置取指定长度的子串作为函数值。【说明】在SUBSTR()函数中,缺省第三个自变量,则函数从起始位置一直取到最后一个字符。以上三个函数的返回值都是字符型。,2.4.2 字符处理函数(续1),2.求字符串长度函数【语法格式】LEN()【功能】返回指定字符串的长度。返回值为数值型。3.空格字符串生成函数【语法格式】SPACE()【功能】返回值为数值表达式指定个数的空格字符串。【说明】空格与空字符串是两种不同的字符。,2.4.2 字符处理函数(续2),2.4.2 字符处理函数(续3),

36、4.删除前后空格函数【语法格式】TRIM()【语法格式】LTRIM()【语法格式】ALLTRIM()【功能】TRIM()返回指定字符表达式值去掉尾部空格后形成的字符串。LTRIM()返回指定字符表达式值去掉前导空格后形成的字符串。ALLTRIM()返回指定字符表达式值去掉前导和尾部空格后形成的字符串。,5.求子串位置函数【语法格式1】AT(,)【语法格式1】ATC(,)【功能】返回字符表达式1在字符表达式2中的位置。【说明】如果字符表达式1是字符表达式2的子字符串,则返回字符表达式1的首字符在表达式中的位置,否则返回为0;数值表达式用于表明要在字符表达式2中搜索字符表达式1的第几次出现,默认为

37、1。ATC()与AT()的功能类似,但在子串比较时,不区分字母的大小写。,2.4.2 字符处理函数(续4),6.大小写转换函数【语法格式1】LOWER()【语法格式2】UPPER()【功能】LOWER()将指定字符表达式中的大写字母转换为小写字母,其它字符不变。UPPER()将指定字符表达式中的小写字母转换为大写字母,其它字符不变。,2.4.2 字符处理函数(续5),7.子串替换函数【语法格式】STUFF(,)【功能】用字符表达式2替换字符表达式1中由起始位置和长度指明的一串字符。【说明】替换和被替换的字符个数不一定相等,如果长度为0,字符表达式2插在起始位置指定的字符的前面;如果表达式2空串

38、,表达式1中由起始位置和长度指明的子串被删除。,2.4.2 字符处理函数(续6),2.4.2 字符处理函数(续7),8.计算子串出现次数函数【语法格式】OCCURS(,)【功能】返回字符表达式1在字符表达式2中出现的次数,函数值为数值型。若字符表达式1不是字符表达式2的子串,函数值为0,返回,2.4.3 日期和时间函数,1.系统日期和时间函数【语法格式1】DATE()【语法格式2】TIME()【语法格式3】DATETIME()【功能】DATE()返回当前系统日期,函数值为日期型。TIME()以24小时制,hh:mm:ss格式返回当前系统时间。函数值为字符型。DATETIME()返回当前系统日期

39、时间,函数值为日期时间型。,2.求年份、月份和天数函数【语法格式1】YEAR(|)【语法格式2】MONTH(|)【语法格式3】DAY(|)【功能】YEAR()返回指定日期型表达式或日期时间型表达式的年份,函数值为数值型。MONTH()返回指定日期型表达式或日期时间型表达式的月份,函数值为数值型。DAY()返回指定日期型表达式或日期时间型表达式的天数,函数值为数值型。,2.4.3 日期和时间函数(续1),3.时、分和秒函数【语法格式1】HOUR()【语法格式2】MINUTE()【语法格式3】SEC()【功能】HOUR()返回指定日期时间表达式中的小时(24小时制)。函数值为数值型。MINUTE(

40、)返回指定日期时间表达式中的分钟。函数值为数值型。SEC()返回指定日期时间表达式中的秒数。函数值为数值型。,2.4.3 日期和时间函数(续2),返回,2.4.4 数据类型转换函数,数据类型转换函数是将某一类型的数据转换为另一种数据类型的函数。1.数值转换为字符串【语法格式】STR(,)【功能】将数值转换为字符串,转换时自动四舍五入。,【说明】N:指定转换的数值表达式;L表示要转换的长度;I要转换的小数位。L:必须大于或等于N(数值表达式)的整数位(包括负号),否则返回一串。如果省略长度L,只转换整数部分。自动四舍五入。不足10位整数时,前面加空格补足10位。只有长度大于整数位(包括负号、小数

41、点)时,才能转换小数位,并自动调整小数位。,2.4.4 数据类型转换函数(续1),2.字符串转换为数值【语法格式】VAL()【功能】将字符串转换为数值。【说明】字符串一般由数字、正负号和小数点组成;将数字、字符(正负号)、小数点转换为数值。忽略前导空格;若字符串中出现非数字字符时,只转换前面部分。若首字符不是数字、或由正负号开始,转换为0。,2.4.4 数据类型转换函数(续2),2.4.4 数据类型转换函数(续3),3.字符转换为ASCII码值【语法格式】ASC()【功能】函数值返回相应字符的ASCII码或机内码(十进制)。【说明】对于字母该函数只返回一个字符的ASCII码值的十进制数;对于汉

42、字可分别返回一个汉字机内码的两个字节的十进制数,也可返回一个汉字的机内码。,2.4.4 数据类型转换函数(续4),4.数值转换为字符【语法格式】CHR()【功能】函数返回数值表达式(ASCII码值)对应的字符或汉字。5.字符串转换为日期或日期时间【语法格式1】CTOD()【语法格式2】CTOT()【功能】CTOD()将字符表达式转换为日期型数据。CTOT()将字符表达式转换为日期时间型数据。,6.日期或时间转换为字符串【语法格式1】DTOC(|,1)【语法格式2】TTOC(,1)【功能】DTOC()将日期型数据或日期时间型的日期部分转换为字符串。TTOC()将日期时间型数据转换为字符串。【说明

43、】日期表达式中的日期部分格式需与SET DATE TO 设置一致。对于DTOC()函数,使用选项1,函数值显示为 YYYYMMDD,共8个字符。对于TTOC(),如果使用选项1,则字符串显示YYYYMMDDHHMMSS,采用24小时制,共14个字符。,2.4.4 数据类型转换函数(续5),2.4.4 数据类型转换函数(续6),7.宏替换函数【语法格式】&().【功能】替换出字符型内存变量的内容。即&的值为去掉字符变量两边的定界符。【说明】如果字符变量后无明确分界,则要用作为函数的结束。该函数一般用在命令的选项中。宏替换可以嵌套使用。,返回,2.4.5 测试函数,在数据处理过程中,有时需要了解操

44、作对象的状态,如测试数据表的当前记录、数据表文件的尾部或开始、记录是否有删除标记等。这些操作都要用到相应的测试函数。1.数据表文件测试函数 VFP系统中数据表是由逐条记录组成的,打开一个数据表后,每一条记录有一个记录指针,在某一时刻只能处理一条记录。VFP为每一个打开的数据表设置了一个内部指针。指向正在处理的记录。该记录称为当前记录。同时还为数据表文件开始和结束设置了文件开始和结束标志。,2.4.5 测试函数(续1),(1)测试数据表文件开始函数【语法格式】BOF(|)【功能】测试指定数据表文件中的记录指针是否指向文件开始位置。若指向开始位置返回逻辑值为真.T.,否则返回逻辑值假.F.。【说明

45、】打开非空数据表时,记录指针指向第一条记录位置。打开空表时,记录指针指向表开始位置,BOF()和EOF()都为真。,(2)测试表文件结束函数【语法格式】EOF(|)【功能】测试指定数据表文件中的记录指针是否指向文件结束位置。若指向结束位置,返回逻辑值为真T.,否则返回逻辑假.F.。,2.4.5 测试函数(续2),2.4.5 测试函数(续3),(3)记录号测试函数【语法格式】RECNO(|)【功能】返回数据表文件的当前记录号。【说明】如果缺省自变量,返回当前工作区数据表文件的记录号。也可用工作区号或别名,返回指定工作区数据表文件的记录号。如果指定工作区没有打开数据表文件,函数返回值为0。当指针指

46、向数据表文件开始位置时,函数返回值为1(与第一条记录的记录号相同);当指针指向表文件结束位置时,返回值为数据表文件的记录数加1。,(4)记录个数测试函数【语法格式】RECCOUNT(|)【功能】返回数据表文件的记录数。【说明】RECCOUNT()返回的是数据表文件中物理上存在记录个数,即不管记录是否被逻辑删除都会参与计数。本函数用工作区号或别名指定工作区时,将返回指定工作区的数据表文件的记录个数;如果指定工作区没有表文件打开,返回值为0。,2.4.5 测试函数(续4),2.4.5 测试函数(续5),2.记录删除测试函数【语法格式】DELETED(|)【功能】测试数据表文件当前记录指针指向的记录

47、是否被逻辑删除,即是否有逻辑删除标志。如果被逻辑删除,返回值为真.T.,否则返回假.F.。【说明】当执行SET DELETED ON 后,某些命令将对被作了逻辑删除标记的记录不起作用。默认状态为 SET DELETED OFF。,3.数据类型测试函数【语法格式】VARTYPE(,)【功能】测试表达的类型。返回一个大写字母。函数值为字符型。,2.4.5 测试函数(续6),返回,返回目录,2.5 VFP的命令结构和书写规则,2.5 VFP的命令结构和书写规则,2.5.1VFP的命令结构2.5.2VFP命令和短语的书写规则,2.5.1 VFP的命令结构,.VFP命令的一般格式 FIELDS FOR

48、WHILE 在命令的一般格式中,是必选项,它是一个英文单词,例如CREATE、DISPLAY、USE等,用于表达该命令的基本功能,即指示计算机要完成的操作。、FIELDS、FOR、WHILE 等均为命令短语。这些短语在VFP中有确定的含义。,2.几种常用的短语(1)范围短语 范围短语确定执行命令时所涉及的记录范围,有以下四个选项:ALL 表示范围是对文件中的所有记录进行操作。RECORD 表示范围是仅对第n条记录进行操作。NEXT 表示范围是仅对从当前记录开始的n个记录进行操作。REST 表示范围是对从当前记录开始到文件结束的所有记录进行操作。范围缺省有2种可能的取值:ALL或NEXT 1,2

49、.5.1 VFP的命令结构(续1),NEXT N,2.5.1 VFP的命令结构(续2),(2)FOR 短语 FOR短语确定命令执行时所涉及的记录,是一个逻辑值,用来指定记录的筛选条件,条件为真的记录参与命令动词规定的运算。如果命令中包含范围短语,在指定范围中筛选出符合条件的记录;否则在所有记录中进行筛选。,2.5.1 VFP的命令结构(续3),WHILE 短语WHILE短语与FOR短语的作用类似,区别是一旦遇到第一个不满足条件的记录就停止筛选。FIELDS 短语FIELDS短语用来指定数据表中参与运算的列,当需要除备注型和通用型字段之外的所有字段参与运算时,该短语可以缺省。,2.5.1 VFP

50、的命令结构(续4),返回,2.5.2 VFP命令和短语的书写规则,VFP提供了近500条命令,它的基本结构包括命令动词和若干短语,用于说明命令的操作对象、操作结果和操作条件,命令中短语的个数与顺序不限,非常灵活。VFP命令的主要书写规则:1.命令动词以及各短语之间必须用至少一个空格分隔;2.VFP命令必须以动词开头,短语次序不限;3.命令动词和短语可以只书写前4个字母,英文字母不区分大小写;命令中的间隔符(空格、逗号、括号等)必须用ASCII字符;4.一个命令行只能写一条命令;一条命令的长度可达8192个字符。若分行书写,除最后一行外,其他各行尾部必须加一个分行符“;”。,返回,返回目录,2.

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号