《VFP6.0第2章VisualFoxPro基础.ppt》由会员分享,可在线阅读,更多相关《VFP6.0第2章VisualFoxPro基础.ppt(78页珍藏版)》请在三一办公上搜索。
1、1,第二章 Visual Foxpro基础,VFP有以下3种命令执行方式:单命令执行方式:在“命令”窗口输入命令,按“回车”键,执行命令输出结果。程序执行方式:编写程序,成批执行命令。菜单命令执行方式:单击菜单选项,执行相应命令。,2,2.1 Visual FoxPro系统概述2.1.1 历史沿革 Foxpro是美国Fox Software公司的产品,1989年推出1.0版,1991年推出2.0版,1993年推出2.5版。1995年9月,Mricosoft推出新一代Foxpro产品Foxpro For Windows 3.0 并将其更名为Visual Foxpro。1997年推出Visual
2、Foxpro 5.0版,1998年推出Visual Foxpro 6.0,如今Visual Foxpro 8.0已经问世。,3,2.1.2 Visual FoxPro的特点1.数据库方面2.数据操作方面3.程序设计方面4.操作使用方面5.使用技术方面,4,2.2 Visual Foxpro的安装与启动2.2.1 Visual FoxPro 6.0的安装1.运行环境2.Visual Foxpro 6.0的安装3.Visual Foxpro 6.0的启动和退出,5,2.3 Visual Foxpro 6.0的用户界面 Visual FoxPro 6.0操作界面大量使用窗口(Windows)、图标(
3、Icons)和菜单(Menus)等可视化技术,主要通过以鼠标为代表的指点式设备(Pointing device)来操作。所以常称为WIMP界面。Visual Foxpro 6.0窗口通常由标题栏、菜单栏、工具栏、主窗口和命令窗口5个部分组成。,6,7,2.3.2 Visual Foxpro 配置1.使用“选项”对话框进行环境配置“工具”“选项”2.使用SET命令配置VFP,8,项目管理器 在数据库应用系统的开发过程中,将会产生各种类型文件,包括:数据库文件、表文件、表单文件、报表文件和程序文件等。项目管理器(Project Manager)是管理、控制这些文件的主要组织工具。项目管理器的内容保
4、存在带有.PJX扩展名的文件中。项目管理器并不保存各种文件的具体内容,其只记录各种文件的文件名、文件类型、路径,以及编辑、修改或执行这些文件的方法。,9,1.打开和关闭项目管理器 打开项目管理器有菜单操作和命令两种。(1)菜单操作 建立新项目文件:【文件】菜单【新建】命令出现【新建】对话框选择【项目】按钮按【新建文件】按钮在出现【创建】对话框时,在“项目文件”文本框输入文件名按【保存】按钮打开新项目项目管理器。打开已有项目文件:【文件】菜单【打开】命令出现下图所示【打开】对话框在“文件类型”下拉列表框选定“项目(*.pjx;*.fpc;*.cat)”后,在文件列表框选定已有项目文件,或在“文件
5、名”文本框输入项目文件名按【确定】按钮打开已有项目的项目管理器。,10,(2)命令操作 使用modify project 命令可以打开项目管理器,用于创建(若项目文件不存在)或修改(若项目文件已经存在)指定文件名的项目文件。例如,modify project exam。扩展名.pjx可省略。使用modify project?命令,命令中的?为可选项。不论带或不带?符号,系统将显示【打开】对话框,选定已有项目文件,按【确定】按钮打开已有项目的项目管理器。,11,2.项目管理器的功能特性(1)采用目录树管理内容 项目管理器采用了目录树结构进行管理,其内容可详(目录树展开时)可略(目录树折叠时),1
6、2,(2)使用方便的功能按钮新建按钮:用于建立新的数据库、表、查询或程序等。添加按钮:添加按钮可以在打开对话框中将已经建立 好的数据库、表、查询或程序等添加到项目中。修改按钮:修改按钮可打开相应的设计器或编辑窗口 修改选定数据库、表、查询或程序。打开、关闭、浏览或运行按钮:当选定数据库时,会 变为打开或关闭功能;当选定表时,会变为浏览功能;当选定查询或程序时,会变为运行功能。移去按钮:将对话框中选定的数据库、表、查询或程序从项目管理器中删除。连编按钮:用于访问连编的选项,可以连编一个项目 或应用程序。,13,2.4 Visual FoxPro 向导、设计器、生成器简介,2.4.1 Visual
7、 FoxPro的向导 向导是一种快捷设计工具。通过一组对话框依次与用户对话,引导用户分步完成Visual FoxPro的某项任务,例如创建表单、表、创建查询和创建报表。1.启动向导(1)通过项目管理器(2)选择“文件”菜单中的“新建”(3)选择“工具”菜单中的“向导”(4)单击工具栏中的“向导”按钮,14,2.4.2 设计器 设计器可以用来创建或修改应用程序所需要的组件1.设计器分类2.打开设计器(1)在“项目管理器”中打开(2)菜单方式打开(3)从“显示”菜单中打开2.4.3 生成器 生成器是带有选项卡的对话框,用于简化对表单、复杂控件和参照完整性代码的创建和修改过程。每个生成器显示一系列选
8、项卡,用于设置选中对象的属性。,15,数据类型,类型就是对数据的允许取值以及值的范围进行的说明。数据类型这一概念的主要特征为:数据类型确定了常量所属值的集合,确定变量、表达式所能取值的集合,也确定了运算和函数(过程)所能生成的值的集合。任何数据所表示值的类型,如能从其说明或静态形式即可推知,这种类型称为基本数据类型。每一运算符号或过程都要求有固定类型的变量或参数,并产生固定类型的结果;如果一运算符允许几种类型的变量,则结果类型可由特定的规则确定。,16,下面讨论每种数据类型的特点:(1)字符型(Character)在Visual FoxPro 6.0中,一个字符型的数据最多可由254个字符组成
9、,通常把字符型简称或简写为C型,使用时必须用定界符双引号(“”)或单引号()或方括号()括起来定界。例如:“ABCD”,1234,数据库,17,(2)货币型 用来保存货币值。在货币表达式中如果小数位超过4位,则VFP将在处理表达式之前自动把它按四舍五入到4位。占用8个字节。若要使用货币数据类型,请在数字前加美元符($)。例如:将123.017657表示为$123.0177,18,(3)数值型(Number)用来表示数量。它包括整数和小数两种数值,组成数值型的数据由09这10个数字、小数点(圆点)、正负号(+、-)组成,在输出时可按习惯插入分节号(逗号,)。(4)浮点型(Float)用来存放浮点
10、数值数据。,19,(5)日期型(Date)这种数据类型只反映日期情况,固定为8个字节,其中表示月份和日期的各占2个字节,年份占有4个字节。日期值的格式取决于SET DATE,SET MARK和SET CENTURY等设置。mmdd(yy)yy美国格式 ddmm(yy)yy欧洲格式 在大部分计算机系统中,都采用美国格式,01202000则表示2000年1月20日。日期型也称D型。,20,(6)日期时间型(Date time)。保存日期、时间或两者兼有时,请使用日期时间数据类型。日期时间值存储在8个字节中,前4个字节保存日期,剩下的4个字节保存时间。时间从午夜起计算,以1/100秒为最小计时单位,
11、日期时间值可以包含完整的日期和时间,也可以只包含两者之一。若用户没有指明日期值,系统默认值1999年12月30日填入;若用户没有指明时间值,用默认的午夜时间填入。日期时间值中,日期部分的格式取决于SET DATE,SET MARK和SET CENTURY等设置,时间部分的格式取决于SET HOURS和SET SECONDS设置。,21,(7)双精度型 当表中需要存储精度较高、位数固定的数值,或者存储真正的浮点数值时,请使用双精度型数据代替数值型数据。与数值型数据不同,在表中输入双精度数值时,由用户决定小数点的位置。(8)整型(Integer)存放整数,占用4个字节的空间。,22,(9)逻辑型(
12、Logical)逻辑型为二值类型,即非真即假,由表示“真”、“假”值的单个字母组成。用于像“男性/女性”、“失败/成功”、“开/关”这类两者中必取且仅取其一的情况。在Visual FoxPro中,用.T.表示真值,用.F.表示假值。其值域固定宽度为1,通常简称L型。,23,(10)备注型(Memory)用于把数据中较大的文本块以固定格式存放在此类型的字段中。该类型数据长度(字符个数)仅受硬盘空间的限制,因而可弥补字符型数据长度不能超过254个字符的限制。但如果某存储的字符长度少于254个字符的话,则应定义为字符类型,这样在查询或显示时可直观地表示出来。此数据类型通常记为M类型。(11)通用型(
13、General)用于表示OLE对象数据。OLE对象包括电子表格、字处理文档、声音、图像或其他多媒体对象。,24,(12)二进制字符型(Character Binary)二进制字符型用于表示不需要系统代码维护的字符数据,其他特性同字符型。(13)二进制备注型(Memo Binary)二进制备注型用于表示不需要系统代码维护的备注型数据。以上列出13种数据类型,有的只能用于字段,而不能用于内存变量。,25,2.5 常量与变量,1.常量 常量是指在程序执行的过程中其值不变的量,又称常数。Visual FoxPro 6.0中定义了6种类型的常量:(1)数值型常量。数值型常量可以是整数或实数。例如:86,
14、125,16,-256.75等。(2)字符型常量。字符型常量是用定界符括起来的由字符、汉字、空格或数字所组成的字符串。例如“ABCD”,“How Do You Do?”,李福贵等。当某一种定界符本身是字符型常量的组成部分时,应选用另一定界符来表示该字符串。,26,(3)逻辑型常量。逻辑型常量只有两个值:“真”、“假”,用.T.(或.t.)、.Y.(或.y.)表示“真”,用.F.(或.f.)、.N.(或.n.)表示“假”。(4)日期型常量。日期型常量用来表示一个日期,它必须用花括号括起来,例如:2005-03-28等。(5)日期时间型常量 日期时间型常包括日期和时间的合成。同样以花括号为定界符。
15、例如:2005/03/28 8:15 a等。(6)货币型常量 货币型常量在存储和计算时采用4位小数,并且没有科学计数法表示。,27,VFP支持的日期型、日期时间型常量的格式有两种:传统格式和严格格式。传统的日期格式的常量要受到SET DATE、SET CENTURY命令的影响,其默认格式为美国日期格式。输入日期时间常量:yyyy/mm/dd hh:mm:ss AM|PM例如:2005-03-28和2005-03-28 18:30输出的日期时间常量:Mm/dd/yy hh:mm:ss AM|PM例如:03/28/05 03/28/05 06:30:00 PM,28,2.5.2 变量,变量是指在命
16、令操作或程序运行期间,其值可以改变的量。Visual FoxPro 6.0的变量有字段变量和内存变量两种。(1)字段变量 字段变量就是表中的字段名,它是表中最基本的数据单元。字段变量的命名、类型、长度是在设计表结构时完成的,字段变量的值就是表中当前记录对应的字段的值。,29,(2)内存变量 内存变量是一种独立于表文件而存在的变量,或者说是一种临时工作单元。它分为用户根据需要定义的内存变量和系统内存变量。系统内存变量是Visual FoxPro 6.0自带的变量,由系统命名创建并维护。用于控制VFP的输出和显示信息的格式。系统内存变量名字以“_”开头。例如“_PEJECT”用于设置打印输出时的走
17、纸方式。,30,用户定义的内存变量在使用之前时,需要为它命名。内存变量命名规则如下:以字母、汉字或下划线开头;由字母、汉字、下划线或数字组成;长度不超过254个字符。例如:x1,姓名、性别、Name,Student_no 等都是合法的内存变量名,而1xy,x%y等则为非法的内存变量名。,31,当内存变量名与字段变量名同名时,系统优先引用字段变量,如果一定要引用内存变量,可以在内存变量名前加前缀“M.”以示区别。例如:?M.姓名&显示“姓名”这一内存变量的值?姓名&如果打开一个含有“姓名”字段的表,则显示“姓名”这一字段变量值.用户定义的内存变量常用于存放初值、中间结果和最终结果,也可以用作控制
18、变量,控制应用程序的运行。内存变量中存放什么样类型的数据,则该变量就具有什么类型。用户通过赋值语句来改变内存变量的类型。,32,Visual FoxPro 6.0中内存变量有如下几种数据类型:字符型(C),日期型(D),逻辑型(L),数值型(N),日期时间型(T),货币符号型(Y)。在Visual FoxPro 6.0程序中,内存变量只能在一个程序(过程)中起作用,除非用户特别说明它是公共的,否则,一旦某一程序运行结束,其定义的内存变量便失去了意义。可使用LOCAL,PRIVATE,和PUBLIC命令指定内存变量的作用域。,33,2.5.3 内存变量常用命令1.赋值命令格式1:STORE表达式
19、TO变量名表格式2:内存变量名=表达式功能:计算表达式并将表达式值赋给一个或多个内存变量,格式2只能给一个变量赋值。2.变量及表达式值的输出命令格式1:?表达式表 格式2:?表达式表功能:计算表达式表中的各表达式并输出各表达式值。不管有没有指定表达式表,格式1都会输出一个回车换行符。如果指定了表达式表,各表达式值将在下一行的起始处输出。格式2不会输出一个回车换行符,各表达式值在当前行的光标所在处直接输出。,34,3.内存变量的显示格式1:LIST MEMORY LIKE通配符TO PRINTER|TO FILE格式2:DISPLAY MEMORY LIKE通配符TO PRINTER|TO FI
20、LE文件名功能:显示内存变量的当前信息,包括变量名、作用域、类型、取值。说明:选用LIKE短语只显示与通配符相匹配的内存变量。通配符包括*和?,*表示任意多个字符,?表示任意一个字符。可选子句TO PRINTER或TO FILE文件名用于在显示的同时送往打印机,或者存入给定文件名的文本文件中,文件的扩展名为.txt。,35,LIST MEMORY一次显示与通配符匹配的所有内存变量,如果内存变量多,一屏显示不下,则自动向上滚动。DISPLAY MEMORY分屏显示与通配符匹配的所有内存变量,如果内存变量多,显示一屏后暂停,按任意键之后再继续显示下一屏。4.释放内存变量命令格式1:CLEAR ME
21、MORY格式2:RELEASE内存变量名表功能:格式1清除所有内存变量。格式2清除指定的内存变量。,36,数组 数组是一组按一定顺序排列的由单个变量名引用的有序数据集合。数组中的各个元素在数组中排列的位置由下标表示,下标的个数称为数组的维数。例如:一维数组X及数组元素X(1),X(2),二维数组B及数组元素B(1,1),B(2,1),一般情况下,数组必须先定义后使用。数组的定义格式:DIMENSION数组名1(数值1,数值2),数组名2(数值3,数值4)或 DECLARE数组名1(数值1,数值2),数组名2(数值3,数值4)功能:定义一维或二维数组,37,数组的赋值。数组中各数组元素的取值类型
22、可以互不相同,数组一定义,系统自动给每个数组元素赋以逻辑值.F.用赋值命令可为数组元素赋值,也可以为数组的各元素赋一相同值。例如:A(4)=3,B(2,1)=“a b c”STORE 10 TO A&A数组中每个元素被赋值10,38,2.6 运算符与表达式,运算符是对操作对象进行操作运算的符号。表达式则是由常量、变量、函数用运算符按一定规则连结而成的有意义的式子。1.运算符根据运算符的不同功能划分为4类:算术运算符、字符运算符、关系运算符、逻辑运算符。,39,(1)算术运算符()分组优先运算符(括号)*或 乘方运算符*,/乘、除运算符%模(取余)运算符+,加减或单目运算符 算术运算符主要用于数
23、值数据间的运算,运算结果也是数值数据。运算符的优先级顺序为:()单目(取正、负号)*,/,-,40,(2)字符运算符字符运算符用于字符串连接操作,有以下两种:指两个字符串原封不动地连接成一个新串。将两个字符串连接起来,与“”连接不同的是,将第一个字符串尾部的空格移到结果的尾部。$包含与a=“abc”b=“def”c=“gh”?a+b+cabc defgh?ab+cabcdef gh&abc后面的空格移到整个字符串a-b结果的后面。?“章”$“章旭升”.,41,(3)关系运算符 关系运算符用于比较运算。即比较同类型操作对象的值,如使关系成立,比较运算结果取值为“真”,否则,取值为“假”。Visu
24、al FoxPro 6.0提供以下关系运算符。各关系运算符的优先级相同。小于 大于 等于 字符串全等比较 小于或等于 大于或等于,!=不等于 例如:?“ABCD”“ABCD”&必须全等,等号右边的字符串中有空格.F.?“ABC”=“AB”当设置SET EXACT ON 为假当设置SET EXACT OFF 为真,42,()逻辑运算符 用于逻辑运算。参与运算的数据均为逻辑型。运算结果也是逻辑值。vfp中提供下列逻辑运算符,其运算优先级次序为:.或!(逻辑非,取其右边逻辑值的相反值).(逻辑与,两边的逻辑值都是真时结果才得真).(逻辑或,两边的逻辑值都是假时结果才得假),43,2.表达式,表达式是
25、Visual FoxPro 6.0命令和函数的重要组成部分,表达式通过运算得出表达式的值。由于操作对象数据类型的不同,运算符类型各异,在组成表达式时要严格遵守相应的规定,否则难以得到我们期望的结果。Visual FoxPro 6.0中定义了下列几种表达式:,44,(1)数值型表达式 数值型表达式由数值型常量、变量、函数和算术运算符构成,运算结果仍为数值型数据。例如:a=6?(8+a)/2&显示结果为7.0000?20%3&显示显示结果为:2,45,(2)字符型表达式 字符型表达式由字符型常量、变量、字符型函数和字符运算符构成。运算结果仍为字符型数据。例如:?“科学”+“技术”结果为:科学 技术
26、?“科学”-“技术”结果为:科学技术,其尾部有空格。,46,(3)日期表达式 日期型表达式由日期型(或日期时间型)常量、变量、函数通过算术运算符“+”、“-”构成。运算结果为日期型(或日期时间型)或数值型数据。格式1:日期n 返回日期 日期时间n 返回日期时间格式2:日期-日期 返回数值 日期时间一日期时间 返回秒数,47,例如:?2001/4/12+30&结果为日期型2001/5/12?2001/4/12-30&结果为日期型:2001/3/13?2001/4/12-2001/4/7结果为5,是两个日期相隔的天数?2004/08/18 09:17-2005/03/18 08:19:20结果为-
27、18313340,48,(4)关系表达式 关系表达式由关系运算符和字符表达式、数值表达式、日期表达式组成,关系运算符左右两侧数据类型必须一致,运算结果为逻辑值。例如:?35 结果为.,49,(5)逻辑表达式 逻辑表达式由逻辑运算符和逻辑常量、变量、函数及关系表达式组成,其结果仍是逻辑值。例如:?NOT(56).T.?(65).AND.abcabc.F.?(35)or(53).T.,50,2.7 常用函数,函数的一般形式为:函数名(参数1,参数2)注意下面3点:准确地掌握函数功能。函数对自变量的类型有确定要求,否则会产生类型不匹配的语法错误。函数的返回值也有确定的类型,注意在组成表达式时的类型匹
28、配。,51,例如:Max(128,86)是一个求128和86之中最大值的函数,其结果为128。函数名后紧接括号、括号内为参数(即自变量),有的函数没有参数,没有参数的函数称为无参函数。函数都有返回值。函数名,参数和返回值为函数的三要素。以下举例说明部分函数。,52,2.7.1 数值函数,数值函数主要用于通用的数学运算,其参数和返回的函数值,都是数值型。1.绝对值函数格式:ABS(N)求数值表达式N的绝对值例2.1?ABS(-46)46?ABS(-2*15.2)30.42.取整函数格式:INT(N)取数值表达式N的整数部分例2.2?INT(10.3)10?INT(-10.8)-10,53,3.符
29、号函数格式 SIGN(N)判断表达式N的符号,该数值为正、零、负数时返回1、0、-1例2.3?SIGN(20)1?SIGN(-36.5)-1?SIGN(0)04.自然指数函数格式:EXP(N)求eN的值例2.4?EXP(1)2.72?EXP(0)1.005.对数函数(1)自然对数 格式:LOG(N)(2)常用对数 格式:LOG10,54,例2.5?LOG(2.72)1.00?LOG10(100)2.006.平方根函数格式:SQRT(N)取数值表达式N的平方根 例2.6?SQRT(2),SQRT(16)1.41 4.007.四舍五入函数格式:ROUND(N1,N2)对N1四舍五入,保留的小数位数
30、由N2决定。例2.7?ROUND(65.3476,3),ROUND(52.35,0),ROUND(32.653,-1)65.348 52 30,55,8.最大值函数格式:MAX(M1,M2,M3)取表达式M1,M2,M3,中的最大值例2.8?MAX(96,80)96?MAX(1999/10/20,1980/5/15)10/20/99 9.最小值函数格式:MIN(M1,M2,M3)取表达式M1,M2,M3,中的最小值,56,10.求余函数格式:MOD(N1,N2)取数值表达式N1除以N2所得的余数,其正负号与N2相同例2.10?MOD(17,5)211.随机数函数格式:RAND(N)功能:返回0
31、到1之间的随机数。,57,2.7.2 字符函数 字符函数的处理对象均为字符型数据,但其返回值类型却各异。1.字符串长度函数格式:LEN(C)返回字符串C的长度(字符个数)。空字符串的长度为0。函数值为N型。例2.11?LEN(“visual foxpro 6.0)17?LEN(“奥运会”)62.空格函数格式:SPACE(N)生成且返回一个由N个空格组成的字符串。函数值是字符型。例2.12?”中国”+space(2)+”安徽”中国 安徽,58,3.删除空格函数格式:ALLTRIM(C)删除字符串C中前后空格TRIM(C)、RTRIM(C)删除字符串C尾部空格。LTRIM(C)删除字符串C前导空格
32、。函数值是字符型 例2.13?AB CD+EF“AB CD EF?trim(AB CD)+EF“AB ADEF?alltrim(AB CD)+EF“AB CDEF?ltrim(AB CD)+EF“AB CD EF4.取子串函数格式:SUBSTR(C,N1,N2)返回一个子字符串。该子字符串在C中从N1位置开始,共N2个字符(如N2省略,则从N1开始至串尾)。,59,例2.14?substr(ABCDEF,3,2)CD?substr(“中国首都”,5)首都5.左取字符,右取字符函数格式:LEFT(C,N)返回一个子字符串,该字符串在C中从最左端开始,取N个字符。RIGHT(C,N)返回一个子字符
33、串,该字符串在C中从最右端开始,取N个字符。例2.16?left(ABCDEFG,4)+right(“XYZ,2)ABCDYZ6.复制字符函数格式:REPLICATE(C,N)功能:将指定的C串重复N次,返回值是所形成的字符串。,60,例2.16?replicate(*,5)*7.求子串位置函数格式1:AT(C1,C2,n)ATC(C1,C2,n)功能:确定字符串C1在字符串C2中的开始位置。返回值N型,如C1不在C2中,则返回值为0,n为C1在C2中第几次出现。ATC()在子串比较时不区分字母大小写。例2.17 store I am a Chinese.to x?at(chinese,x)0
34、?atc(chinese,x)8?at(a,x,2)6,61,2.7.3 日期和时间函数 日期函数主要用于对日期型参数进行操作,设置或提取系统日期或日期的年月日星期等,常用的有:1.系统日期函数格式:DATE()格式:返回系统当前日期。函数值为日期型D,62,例2.18?date()08/31/08set century on?date()08/31/20082.系统时间函数格式:TIME()功能:返回系统当前时间,函数值为字符型C。3.系统日期时间函数格式:DATETIME()功能:返回系统当前日期、时间。函数值为日期时间型T,63,4.年函数格式:YEAR(D)功能:返回D的年份值(4位,
35、N型)。?year(date()20085.月函数格式:MONTH(D)功能:返回D的月份值(N型)?month(date()96.日函数格式:DAY(D)功能:返回D日期值(N型)?day(date(),64,2.7.4 数据类型转换函数 转换函数的功能是将某一种类型的数据转换为另一种类型的数据。1.数值转换成字符串函数格式:STR(N1,N2,N3)功能:将数值N1转换成字符串。N2表示串的最大长度,N3表示保留小数点位数。函数值为字符型。若N2小于N1的整数位数,则函数值为由“*”组成的字符串,若省略N3,则认为小数位数为0,若省略N2和N3,则整数位数默认为10。,65,例2.24?S
36、TR(896.5682,8,4)结果:896.5682?STR(896.5682,8)结果:897?STR(896.5682)结果:897?STR(896.5682,2)结果:*?STR(896.5682,3)结果:8972.字符串转换成数值函数格式:VAL(C)功能:将字符串转换成相应的数值型数据。转换从字符串最左边字符开始,如果第一个字符为非数字字符,则函数值为0;若为数字字符,则一直到非数字字符为止。函数值为N型。,66,例2.25?val(“28.612”)+10 结果:38.61?val(“51ABC”)结果:51.00?val(“ABC51”)结果:0.00?val(“2.8E+5
37、”)结果:280000.003.字符转换ASCII码函数格式:ASC(C)功能:返回C中第一个字符的ASCII码。函数值为N型。例2.26?asc(ABC+DEF)65,67,4.ASCII码转换字符函数格式:CHR(N)功能:将十进制数N转换成相应的ASCII码字符。函数值为C型。例2.27?chr(33*2)B5.字符型转换为日期型函数格式:CTOD(C)功能:把日期格式书写的字符串转换成日期型数据。?ctod(“10/20/99”)10/20/996.日期型转换为字符型格式:DTOC(D,1)功能:把日期型数据D转换成字符串形式。,68,例2.29rq=1999.10.20?dtoc(r
38、q),rq10/20/99 10/20/99?dtoc(rq,1),rq19991020 10/20/997.字符型转换为日期时间型函数格式:CTOT(c)功能:将字符串c转换成日期时间型。例2.30?ctot(07/30/01 10:30:20)07/30/01 10:30:20 AM,69,8.日期时间型转换成字符型函数格式:TTOC()功能:将的值转换成字符型例2.31?ttoc(2001/7/30 10:30:20 AM)07/30/01 10:30:20 AM9.大小写转换函数格式1:UPPER(C)功能:将字符串C中的小写字母转换成大写字母格式2:LOWER(C)功能:将字符串C中
39、的大写字母转换成小写字母,70,例2.32 x=I am A student?upper(x)I AM A STUDENT?lower(x)i am a student10.宏代换函数格式:&.功能:&是宏代换函数,用于代换指定的内容。若有可选项,则&代换后的值与后面的的值串联起来,&与后面的之间必须插入一个圆点,这个点叫宏代换终界符。,71,例2.33X=ABCABC=52.38?X,&X ABC 52.38?&X“ABC?YY&X.ZZ YYABCZZ,72,2.7.5 测试函数 测试函数主要对参数进行某方面测试。对测试结果判断后进行不同处理。1.测试表文件尾函数格式:EOF()功能:判定
40、记录指针是否在数据表文件尾,如果是,则返回值为.T.,否则,返回值为.F.。2.测试表文件首函数格式:BOF()功能:判定记录指针是否在数据表文件头,如果是,则返回值为.T.,否则,返回值为.F.。,73,3.测试表文件当前记录号函数格式:RECNO()功能:返回当前记录指针指向的记录号。,74,4.测试表文件记录数函数格式:RECCOUNT()功能:测试指定表文件的记录数。,75,5.测试字段数函数格式:FCOUNT()功能:测试表文件的字段数。6.测试字段名函数格式:FIELD(N)功能:测试表文件中指定序号的字段名。7.测试查找记录是否成功函数格式:FOUND()功能:测试指定的表文件检
41、索操作是否成功,如成功返回值为.T.,否则为.F.。8.测试表文件名格式:DBF(),76,功能:返回指定工作区中打开的表名。9.测试删除标记格式:DELETED()功能:测试指定当前记录是否有删除标记。10.数据类型测试函数格式1:TYPE(参数)格式2:VARTYPE(参数)功能:返回参数的数据类型,格式1参数必须加上字符定界符,格式2参数不需加上定界符。,77,例2.40 x=10y=chinaz=.t.?type(x),type(y),type(z)?vartype(x),vartype(y),vartype(z)N C LN C L,78,11.条件测试函数格式:IIF(L,X1,X2)功能:逻辑表达式L为“真”,返回表达式X1的值,否则返回表达式X2的值。x=chinay=c?iif(y$x,y包含于x,x不包含y)结果:y包含于x,