《数据库》第二章vfp用户界面语言基础_第1页
《数据库》第二章vfp用户界面语言基础_第2页
《数据库》第二章vfp用户界面语言基础_第3页
《数据库》第二章vfp用户界面语言基础_第4页
《数据库》第二章vfp用户界面语言基础_第5页
已阅读5页,还剩137页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 二 章 Visual FoxPro 用户 界面及语言基础,熟悉VFP6.0的运行环境有助于用户操作和管理数据库,同时也是加深对VFP6.0数据库的组成及其相互关系的理解,提高程序设计技能的基础。本章首先介绍了VFP6.0的界面组成,然后讲述了VFP6.0提供的各种数据类型以及常量、变量和表达式等数据存储单元与运算方式,在本章的最后以分类的形式,对VFP中常用函数进行了介绍。,本 章 要 点,学完本章内容,应掌握如下内容: 了解VFP6.0系统桌面各组成部分的含义以及主菜单栏、工具栏等中主要选项的功能。熟悉VFP6.0提供的数据类型和常量、变量、表达式等概念。掌握常用函数的格式与应用,并能熟

2、练运用各种类型的运算符进行表达式运算。,VFP 用户界面及语言基础 目 录,2.1 VFP 6.0的用户界面 2.2 VFP 6.0中的数据类型 2.3 VFP 6.0的数据存储与运算方式 2.4 常用函数及其应用,2.1.1 VFP 的窗口组成和基本操作 2.1.2 VFP菜单系统 2.1.3 命令窗口 2.1.4 工具栏 2.1.5 VFP的设计器、向导和生成器,2.1 VFP 6.0的用户界面,2.1.1 VFP 的窗口组成和基本操作,同其它的开发工具一样,在使用VFP进行数据库软件设计与应用之前,必须先要了解VFP的用户界面。 VFP6.0的主窗口主要有标题栏、菜单条、主工具栏、状态栏

3、、命令窗口和工作区域等一些组成部分。当进入不同的开发界面时还会出现项目管理器窗口、表单设计窗口、菜单设计窗口、属性窗口等设计界面。,标题栏,菜单栏,工具栏,命令窗口,状态栏,中文VFP6.0的主窗口,2.1.2 VFP 的菜单系统,1菜单系统的表现形式与操作,VFP菜单系统符合Windows95菜单模式。在VFP的菜单系统中,菜单条里的菜单选项不是一成不变的。当打开不同的窗口时,菜单选项是不一致的,而且选中某菜单项后,其中的子菜单项也会随着使用环境的不同而改变。有时菜单栏中会增加或减少菜单选项;有时VFP会将其它应用程序的菜单条合并进来。,2VFP6.0 的主菜单系统简介,VFP6.0主菜单系

4、统共有8个菜单项,即文件、编辑、显示、格式、工具、程序、窗口和帮助。每个菜单项含有若干个菜单命令,执行不同的操作。这里仅介绍一些常用菜单选项的含义。,常用菜单选项: (1) 文件(2) 编辑 (3) 显示(4) 格式 (5) 工具(6) 程序 (7) 窗口(8) 帮助,2.1.3 命令窗口,在VFP中操作的方法有两种:可以在命令窗口中输入命令,也可以使用菜单和对话框完成所有操作。对于新用户来说,通过菜单和对话框可以很容易地使用VFP的功能而不需记忆各种命令。不过,虽然几乎所有的操作都可通过菜单和对话框来完成,但有时使用命令窗口却是更为简捷的操作方法。,命令窗口是VFP系统定义的窗口,所有的VF

5、P命令都可以在命令窗口中键入执行。下面简单讲述一些命令窗口中编辑、操作的方法和技巧。,在按 ENTER 键执行命令之前,要想取消键入的命令可按 ESC 键。 将光标移到以前执行过的命令行的任意位置按 ENTER 键,会重新执行此命令。 在“命令”窗口内选择需要的文本后,可以直接将其拖动到其他编辑窗口中。 通过对“格式”菜单项的选择,可改变命令窗口中的字体、行间距和缩进方式。 在“命令”窗口中单击鼠标右键,可以显示一个快捷菜单 。,2.1.4 工具栏,VFP启动后会自动加载常用工具栏,除了常用工具栏外,每个设计器都有一个或多个工具栏,称之为浮动工具栏。它们仅当进入相应的设计器工作状态时才出现。例

6、如,表单设计器有单独的控件、控件布局及调色板等工具栏 。,我们可在屏幕上放置开发时常用的所有工具栏。要显示指定的工具栏,可选择主菜单中的“显示”项,然后单击下拉出的“工具栏”,在弹出的对话框中点击要选择的工具栏,使其复选框有效,按“确定”按钮即可。,有时我们可以根据需要,建立符合应用程序要求的工具栏,也就是说,要定制“自己”的工具栏,这需要用到工具栏中的“新建”和“定制”按钮。具体操作是:,2.1.5 VFP 的设计器、向导和生成器,1设计器(Designers),作为管理数据的工具,VFP中的设计器能够使用户轻松地创建高效的表、表单、数据库、查询、视图和报表等;还可以把用设计器创建的项加进应

7、用程序中。,设计器在VFP程序设计中应用非常广泛,我们在以后的章节中对主要的设计器会作详细的介绍。,VFP 常用的几种设计器,2 向 导,向导是一种交互式的实用程序,集简捷的操作和完善的功能于一体,能逐步帮助用户快速完成日常任务,例如创建表单、编排报表的格式,以及建立查询。在用户创建某种类型的新文件时,用户可选择使用“向导”按钮来帮助创建该文件,也可从“工具” “向导”弹出的子菜单中直接选择某种向导。,3生 成 器,VFP 6.0生成器是一个方便易用的工具,它简化了创建和修改表单、控件及数据库完整性约束等工作。每一个生成器都由一系列选项页组成,它们允许用户访问并设置所选对象的属性。如同VFP向

8、导一样,生成器也是简便、快捷、有效的。,2.2 VFP 6.0的数据类型,数据类型是一个十分重要的概念,因为数据间的操作必须遵循一个基本原则:只有相同类型的数据之间才能进行操作,否则将出现语法错误。与其它的程序设计语言一样,VFP提供了多种数据类型 。,1字符型(Character),字符型(C型)数据可以包含任何可显示的字符、汉字和符号。在使用过程中,如果需要定义包含字母、数字、空格和符号的变量时,如职工的姓名、电话号码和邮政编码时,一般以字符型数据类型表示。字符型字段或变量的长度不能超过254个字节,每个字符占用一个字节,每个汉字占用两个字节。,2数值型(Numeric),数值型(N型)用

9、于表示数量,是由数字符号0-9以及小数点和正负号及E组成。常用来存储成绩、工资、人数等。数值型的长度不能超过20位,其中负号、小数点各占一位。N型值的取值范围在-0.9999999999E+19到+0.9999999999E+20之间。在内存中,数值型固定占用8个字节。除了十进制数外,VFP6.0还支持十六进制数,如十进制数128可以表示为十六进制的0 x80。,3整型(Integer),整型(N型)用于对整数类数值的表示,仅适用于字段的定义。整型数据占用4个字节,而且是用二进制形式表示的,因此其取值介于-2147483647(-231+1)到2147483647(231-1)之间。因此比数值

10、型数据占用的空间要少得多。,4浮点型(Float),浮点型(N型)与数值型是完全等价的。它的设置主要是考虑到FoxPro各版本的兼容处理。,5双精度型(Double),双精度型(N型)能够提供更高的数值精度。Double型只用于字段的定义,固定占用8个字节(固定存储长度的浮点数表示),Double型不同于数值型,其小数点位置由输入的数据值来决定。,6货币型(Currency),在VFP6.0中,一般使用货币型(Y型)数据表示货币,而不是使用数值型。如果货币型数据的小数位数超过四位,系统会自动对其进行舍入处理。系统默认的货币符号是“”,用户可以通过“Set Currency”语句设置货币符号。货

11、币型数据的取值范围介于-922337203685477.5808到922337203685477.5807之间,用8个字节存储。,7日期型(Date),在日期型(D型)数据主要用于表示没有时间显示的日期值。日期型数据的存储格式为“yyyymmdd”,其中yyyy表示年,占4个字节,mm表示月,占2个字节,dd表示日,占用2个字节。日期格式和范围由“Set Date”、“Set Mark to”和“Set Century”语句确定。,8日期时间型(Dateatime),日期时间型(T型)数据可以表示既包含时间又包含日期的数据,也可以表示只包含日期或只包含时间的数据,如果只包含了时间,系统将189

12、9年12月30日作为默认日期,如果只包含了日期,系统将午夜12点作为默认时间。时间格式可以由“Set Hours”、“Set Seconds”语句确定。,9逻辑型(Logical ),逻辑型(L型)用于存储只有两个值的数据,是一种高效的存储方法,存入的值为真(.T.)和假(.F.)两种状态。逻辑型变量多用于程序分支设置。,10备注型(Memo),备注型(M型)类型只适用于表中的字段,存储时,备注字段固定为4个字节,用来表示一个指向存储备注文件(.FPT)内容的指针。而实际的备注内容的多少只受限于内存可用空间。VFP的备注可用包含任意的数据,只要适用于字符串的所有内容,都可以写入备注中。一般来说

13、,表中的备注型字段多用来存放简历、注释等内容。,11通用型( General ),通用型(G型)用于存储OLE对象,仅适用于表中的字段。固定存储空间为4个字节。在通用型字段中,包含了对OLE对象的引用。一个OLE对象的具体内容可以是一个电子表、一个字处理文档、一幅图片等,这些OLE对象是由相应的应用软件建立的。,12字符型(二进制),二进制字符类型的数据不随着代码页的改变而改变。所谓代码页是指各国因为语系不同,必须使用不同的代码,当换成另一个代码时,VFP会自动转换成相应的语系,因此不需担心语系不同的问题 。,13备注型(二进制),与字符类型(二进制)一样,当代码页改变时,其值不会随之改变。,

14、2.3 VFP 6.0的数据存储 与运算方式,2.3.1 常量 2.3.2 变量 2.3.3 表达式与运算符,数据在系统中进行加工处理时,需要一个数据载体,用于暂时存储内存中的数据。我们将用于存储数据的常量、变量、数组、记录和对象属性等称为数据存储容器,它们决定了数据的类型及使用方法。而对数据存储容器的声明方法和定义位置又决定了该数据存储容器的可用范围。,常量是程序运行过程中保持不变的数据。VFP的常量主要包括字符型、数值型、逻辑型以及日期(时间)型常量。,2.3.1 常 量,1字符型,字符型常量是由双引号、单引号或方括号括起的字符。例如,“ABCD”、1234、王小二等。,2数字型,数值型常

15、量是由数字09、小数点、正负号和E组成的。例如128、-123.34、 0.234、 1.2E+5等都是数值型常量。其中1.2E+5是1.2105在VFP中的表示方法。,3逻辑型,逻辑型常量只有逻辑真和逻辑假两个值,通常用.T.或.Y.表示逻辑值真,用.F.或.N.表示逻辑值假,字母两侧的小圆点不能省略,字母大小写通用。,4货币型,货币型常量是以“”作为前缀的数值,如12.35、1234.5678。,5日期型,日期型常量是用大括号按一定格式yyyy-mm-dd hh:mm:ss ap括起的符合日期规定的常量,例如1999-11-23、 、/均是符合语法的日期型常量,其中后三个均表示值为空的日期

16、型常量。,6日期时间型,日期时间型常量也是用大括号定义,如1999-11-23 5:12:00P,可以用“/:”符号表示值为空的日期时间型常量,另外,日期时间型数据00:00:00AM与12:00:00AM相同,表示午夜,00:00:00PM和12:00:00PM相同,表示中午。,此外,在VFP中还可以创建编译时常量(Compile-time Constant)。这种常量只能在程序设计阶段使用,通过对这种常量的编译,将用常量的具体内容置换该常量在源代码中的位置,而且常量中可以包含任意类型的数据。定义这种常量使用“#define”语句,取消常量定义使用“#undefine”语句,例如: #DEF

17、INE PAI 3.1415926 #UNDEFINE PAI,变量是在程序运行过程中随时变化的量。在VFP中,变量可分为字段变量、内存变量。而内存变量又可分为系统变量、数组变量和对象变量 。,2.3.2 变 量,1字段变量,字段变量(又称字段名变量)是指数据库表文件中的某一字段,它的具体值是当前记录中该字段存放的数据。其变量名可以使用字母、数字、下划线和汉字,但第一个字母必须是字母或汉字。数据库包含的表中字段变量名长度不能超过128个字符(自由表中字段变量名长度不能超过10个字符)。在变量名中字母不区分大小写。,2内存变量,内存变量是在内存中开辟的临时工作单元中存放的数据,它独立于数据表而存

18、在。内存变量建立后,其所存储的信息就一直留在内存中,直到用户释放该内存变量,或离开变量的作用域为止。内存变量分单一变量和数组变量,其类型包括字符型、货币型、数值型、逻辑型、日期型和日期时间型。,每个变量都要有一个数据类型。在VFP6.0中,定义变量的数据类型比较简单,变量第一次赋值时被赋予的数据类型将作为变量的数据类型。给变量赋值最常用的命令有“”和“Store命令” 。,xm=“赵冬梅”,例如:,a1= -1.2E3,store 2000-10-01 to date,在内存变量中,除了普通变量外,数组变量和系统变量也以其各自的特点,有较为广泛的应用。关于数组变量,详见6.2.2节。这里仅简单

19、介绍一下系统变量和VFP新增的对象型变量。,(1) 系统变量,系统变量是系统自己定义的一些变量。这些变量的名称是系统已经定义好的,都是以下划线(“_”)开头。故在定义内存变量的名称时,最好不要以“_”开头,以避免重名。,(2) 对象型变量,VFP 中的每个对象都可以看作是用类定义的。VFP中的对象型变量主要在程序中用来定义、存取各种对象信息。,VFP中的变量(包括字段变量、内存变量)、数组元素、常量、函数以及通过运算符将它们组合而成的有意义的式子,就是表达式。,2.3.3 表达式与运算符,表达式及其运算是编制应用程序的基本特征之一,根据表达式运算结果确定应用程序的流程,是程序开发过程最基本的思

20、想。表达式运算主要是通过连接变量、常量、函数等的运算符完成。,对于不同的数据类型将使用不同的运算符,即使是相同的运算符,参加运算的数据不同时,运算规则也可能不同。当一个表达式中含有多个运算符时,需要根据不同运算符的级别高低而不仅仅是先后次序来决定整个表达式的运算顺序。,每个表达式都有一定的数据类型,VFP中的表达式主要有字符表达式、数值表达式、日期表达式、逻辑表达式、关系表达式和名表达式。 本节对VFP6.0中的表达式和运算符作简单的介绍。,字符型表达式的主要运算符有三个:“”、“”、和“$”,运算符的优先级是“”、“”优先于“$”。 见表2-2。,1 字符表达式及运算符,表2-2 字符运算符

21、,数值运算符应用于各种数值型(包括整型、双精度型等)数据,其优先级见表2-3。,2 数值表达式及运算符,表2-3 数值运算符,对于D和T型的数据,其运算符只有“”和“”。见表2-4。,3 日期及日期时间型表达式及运算符,表2-4 日期运算符,关系运算符可以用于任何的数据类型,用关系运算符连接常量、变量等而构成的关系表达式的返回值是逻辑型。关系运算主要是同类型数据之间的比较运算,然后返回一个逻辑值表示比较的关系是否成立。见表2-5。,4 关系表达式及运算符,表2-5 关系运算符,逻辑表达式只有两个值逻辑真和逻辑假。它可以包括下列的VFP元素:逻辑型字段、逻辑型内存变量和常量、返回值为逻辑值的函数

22、以及关系表达式等。逻辑型运算符按优先顺序依次为:NOT或!、AND和OR。见表2-6。,5 逻辑表达式及运算符,表2-6 逻辑运算符,在字符运算符、日期和时间运算符、数值运算符、关系运算符和逻辑运算符混合运算的表达式中,字符、日期和时间、数值运算符的优先级要高于关系运算符,关系运算符的优先级则高于逻辑运算符,括号运算符“()”是所有运算符中优先级最高的。,例如,下面的逻辑表达式是按照标注的顺序进行运算的,表达式的值为.F.。,1.5 + 8.2 4 + 52 .AND. (.NOT. .T. .OR. “b” $ “bc”),9.7 56 .F. .OR. .T.,.F. .AND. .T.,

23、.F.,在VFP中,可以建立一个名表达式替代字符变量或数组元素中的值。,6 名表达式,当将一个名表达式存入内存变量或数组元素中以后,我们就可以在命令或函数中引用这个名,其具体方法是用一对括号将存储名表达式的变量或数组元素括起,这也称作间接引用。例如,要浏览姓名字段的值,用名表达式可写成:,Store 姓名 To xm Browse Fields (xm),名表达式不是变量或数组元素,也不是一个字段,它不能用引号引起,否则会导致错误。在多个名之间需要用逗号进行分隔,这样可将多个名存入一个变量中,如:,Store 姓名,性别,职称 To aa Browse Fields (aa) ? Browse

24、 Fields &aa,存入内存变量或数组元素中的名,除了通过间接引用的方式使用外,还可以利用宏替换进行处理。,7 宏 替 换,VFP中的宏替换的形式是:&.,其中代表字符型内存变量,圆点字符(.)指示宏替换的结束。当VFP进行宏替换处理时,将使用要替换的变量中的内容来代换“&”及这个变量名和圆点符。,a1=Fox ? Visual &a1.Pro,将显示字符串“Visual FoxPro”,上例中命令“ ? ”表示显示表达式的结果。,例如:,2.4.1 字符处理函数 2.4.2 数值处理函数 2.4.3 日期和时间函数,2.4 常用函数及其应用,简单地说,函数是系统内部“编制”好的一段程序。

25、它具有“函数”的特征,即只要调用它,就能得到相应的结果。 函数的一般调用形式是: (,,) VFP6.0提供了大量函数,本节仅讲述常用的字符处理、数值处理、日期及时间函数等 。,字符处理是数据库应用中最常用的功能之一。字符处理的主要任务有:完成字符测试;字符串的截取、加长、生成和置换等。,2.4.1 字符处理函数,1字符串位置,和长度测试,(1)字符串位置测试函数,【格式】 AT(,) 【功能】 返回在中第次出现的位置。如果未找到,AT()将返回数值0。字符表达式1、2均可以是备注字段。缺省值为1。 AT()函数区分字母的大小写,如果不希望区分大小写,应使用 ATC()函数,其格式与AT()相

26、同。 【例2-1】 ?AT(s,Foxpro System ) & 显示10。,(2)字符串长度测试函数,【格式】 LEN() 【功能】 测定的长度。可以是字段或内存变量,但必须是字符型表达式。 【例】 ?LEN( VFP程序设计) & 返回11 注意:一个汉字占两个字节。,(3)统计字符出现次数函数,【格式】 OCCURS (,) 【功能】返回在中出现的次数。 【例】 ?OCCURS (T , ATTRIB ) & 返回2,2逻 辑,测 试,(1)存在测试函数,【格式】 BETWEEN(,) 【功能】判断被测表达式的值是否介于另外两个相同数据类型的表达式之间。如果是返回.T.;否则返回.F.

27、。,St1=FoxPro St2=Visual FoxPro ?BETWEEN(st1, ,st2) &显示.T. ,其中 是空字符,nm1=10 ?BETWEEN(nm1,1,100) &显示.T.,【例2-2】 测试字符串或数据是否满足要求。,(2)表达式是否为空测试函数,【格式】 EMPTY() 【功能】测试表达式是否有内容。一个变量无值时则为空,注意:空与空格是两回事。可以是任意类型。,在下列情况下,EMPTY()返回.T.:,(3)测试表达式是否匹配函数,【格式】 LIKE(,) 【功能】判断两个字符表达式是否匹配。如果匹配,返回.T.;否则返回.F.。可包含通配符“*”或“?”。L

28、IKE()区分大小写字母。,?like(zhong,zhong guo) &显示.F. ?like(zhong*,zhong guo) &显示.T. ?like(zhong ?,zhong guo) &显示.T.,【例】测试两字符串是否匹配。,(4)字符测试函数,【格式】 ISALPHA () 【功能】判断若中的首字符是字母,则返回.T.;否则返回.F.。 【例】 ? ISALPHA (A10) ? &显示.T. ? ISALPHA (“第1章”) &显示. F. ? ISALPHA (2AB) &显示.F. 具有这类字符测试功能的函数还有:,ISDIGIT():若首字符是数字符,返回.T.;

29、否则返回.F.。 ISLOWER():若首字符是小写字母,返回.T.;否则返回.F.。 ISUPPER():若首字符是大写字母,返回.T.;否则返回.F.。,(5)表达式类型测试函数,【格式】 TYPE() 【功能】 返回指定的字段或表达式的数据类型。该函数先对表达式进行类型检测,然后返回一个描述表达式数据类型的字符。,a1=VFP System a2=.T. ?TYPE(12*3)+4) & 输出N ?TYPE(a1) & 输出C ?TYPE(b1) & 输出U ?type(1976-09-08) & 输出D ?TYPE(a2) & 输出L,【例2-3】,TYPE()函数中数据类型对应的返回

30、字符,3字符串截取,加长和置换,(1)字符串截取函数(),指从一个字符串中取相应的子串,共有三种不同的函数: SUBSTR(, ,),【功能】从中的第个字符开始,截取并返回个字符。如果省略,则截取的子串结束于的最后一个字符。可以是备注字段。,a1=Visual FoxPro程序设计 ?SUBSTR(a1,8,6) &结果是“FoxPro” ?SUBSTR(a1,AT(程,a1) &结果为 “程序设计”,【例2-4】 SUBSTR ( ) 函数的使用,(1)字符串截取函数(),LEFT(,),【功能】从字符串最左边开始,截取并返回个字符串。若的值大于的长度,则返回整个串;若0,则返回空串。 【例

31、】 a1=FoxPro程序设计 ?LEFT(a1,6) &结果是“FoxPro”,(1)字符串截取函数(),RIGHT(,),【功能】从字符串最右边开始,截取并返回个字符串。若的值大于的长度,则返回整个串;若0,则返回空串。 【例】 a1= FoxPro程序设计 ?RIGHT(a1,4) &结果是“设计”,(2)截掉字符串中的空格函数(),ALLTRIM (),【功能】返回删除了头部和尾部空格的字符串。此函数可以用来确保用户输入数据中没有多余的前导和尾部空格 。,【例】A1= FoxPro ?ALLTRIM(A1) &结果是“FoxPro”,(2)截掉字符串中的空格函数(),LTRIM ()

32、返回删除了头部空格的字符串。 RTRIM () 返回删除了尾部空格的字符串。 TRIM () 与RTRIM( )函数相同。,截掉空格函数还有:,(3)生成字符串函数(),REPLICATE (, ),【功能】返回复制次数后形成的字符串。,【例】 ? REPLICATE(,10) &显示 “”,字符串中的空格、字符都可以生成,这类函数 共有下列5种:,(3)生成字符串函数(),SPACE (),【功能】返回由个空格组成的字符串。,【例】 ? 程序 +SPACE(4) + 设计 & 显示 “程序 设计”,(3)生成字符串函数(),PADL (,) PADR (,) PADC (,),【功能】在字符

33、型、数值型或日期型表达式左右或左右两边填充指定的字符, PADC( )在两边都填充字符;PADL( )仅在左边填充;PADR ( )仅在右边填充。若省略,系统将填以空格。填充个数由表示。,S=string ?PADL(S,10, *) & 显示 * string ?PADR(S,10, *) & 显示 string * ?PADC(2,10, *) & 显示* 2 *,【例2-5】,(4)字符串置换函数(),PROPER (),【功能】按中每个单词的首字母大写,其余字母小写的形式返回字符串。,【例】 ? PROPER(XSDA) & 显示字符Xsda,一个字符串中常常需要将一个子串用另一个子串

34、置换,形成新的子串。完成置换的函数共有下列种:,(4)字符串置换函数(),CHRTRAN (, , ),【功能】用替换中与匹配的字符。如果中的字符比少,则中多余的字符被置为空串NULL;如果中的字符比多,则中多余的字符被忽略。,? CHRTRAN(abcdef,abe,xyz) & 显示xycdzf ? CHRTRAN(abcdef,abe,xyz001) & 显示 xycdzf ? CHRTRAN(abcdea,ab,1) &显示 1cde1,【例2-6】 CHRTRAN( ) 函数的使用,(4)字符串置换函数(),STRTRAN (, , , ),【功能】用在字符串中找指定的子串,找到之后

35、,用新串替换。如果省略,则将从中删除。如果省略,则从指定的位置后出现的所有都将被置换。,? STRTRAN(PASCAL,BASIC,C,FOXPRO,、) & 显示“PASCAL、BASIC、C、FOXPRO” ?STRTRAN(ABCD,E,F) & 没找到,不替换。故显示ABCD ?STRTRAN(壮丽的祖国,壮丽的家乡,壮丽的山河, 壮, 美,1,2) & 显示“美丽的祖国,美丽的家乡,壮丽的山河”,【例2-8】 STRTRAN ( ) 函数的使用,4字符转换,(1)数值、字符之间的相互转换函数(),STR (, , ),【功能】把数值表达式的值转换成字符串。 :被转换的数值表达式。

36、:转换后的字符串长度。 :小数点右边的数字字符的个数。 如果大于数值的实际长度,则在数字串左边补充空格;若小于数值的实际长度,则函数将输出星号。若不选可选项,则保留10位整数,不足的前面用空格补。,a1=100.10 ?STR(a1,3) & 显示 100 ?STR(a1,10,3) & 显示 100.100,前面有3个空格 ?STR(a1,2) & 显示 * NL=20 ? 小李今年+STR(NL,2)+岁 & 显示 小李今年20岁,【例2-9】 STR ( ) 函数的使用,(1)数值、字符之间的相互转换函数(),ASC (),【功能】每一个字符都有惟一的,是值在0255之间的ASCII码。

37、该函数返回中第一个字符的ASCII码值,其余字符都被忽略。 与该函数作用相反的函数是CHR(),它返回所对应的ASCII码代表的字符。,? ASC(ABC) & 显示字符“A”的ASCII码值:65 ? CHR(65) &显示ASCII码值为65的字符:“A”,【例2-10】 ASC ( ) 函数的使用,(2)大小写转换函数,LOWER () 【功能】把中所有的大写字母转换为小写字母。,UPPER() 【功能】把中所有的小写字母转换为大写字母。,【例】S=FoxPro ?LOWER(S)& 显示 foxpro ?UPPER(S) & 显示 FOXPRO,(3)求值函数,EVALUATE ()

38、【功能】计算的值并返回结果。可以是用定界符括起的文字串、合法的表达式、内存变量、数组元素或任何数据类型的字段。,【例2-11 】 ? EVALUATE(DATE( ) ) & 将显示当前日期。 a1=ABC ?EVALUATE(a1) & 显示ABC。,数值处理函数包括三角、对数、指数、数值转换和测试等函数。一般来说,此类函数的返回值为数值型。 下面只讨论常用的数学运算、数值转换和测试函数 。,2.4.2 数值处理函数,【格式】 ABS() 【功能】返回数值表达式的绝对值。,1求绝对值函数,【例】 ?ABS(2*310) & 显示 4 A= -10 ?ABS(A*3) & 显示 30,【格式】

39、 CEILNG () 【功能】返回大于或等于的最小整数。 下限函数FLOOR()返回小于或等于的最大整数。,2上限、下限函数,【例】N1=10.1 N2=-10.9 ?CEILING(N1) & 显示 11 ?CEILING(N2) & 显示 -10 ?FLOOR(N1) & 显示 10 ?FLOOR(N2) & 显示 -11,【格式】 EXP () 【功能】计算并返回的e底指数函数的值。许多此类函数返回值的小数位数取决于SET DECIMALS设置和中的小数位数。,3指数函数,【例2-12】 ? EXP(1) & 显示2.72 ? EXP(1.0000) & 显示2.7183 SET DEC

40、IMALS TO 3 ?EXP(1) & 显示2.718,【格式】 INT () 【功能】返回的整数部分。,4取整函数,【例】 ? INT(2.72) & 显示 2 N1=-100.256 ? INT(N1) & 显示 -100 ?INT(N1+50) & 显示 -50,【格式1】 MAX (, , ) 【功能】返回具有最高ASCII码值、最大数值或最近日期的表达式。 【格式2】MIN (, , ) 【功能】返回具有最小ASCII码值、最小数值或最近日期的表达式。,5最大值、最小值函数,【例2-13】? MAX(54,39,100) & 显示100 ?MIN(1998/10/01,DATE()

41、,1969/12/31) & 显示12/31/69 ?MAX(美国, 中国, 俄国) & 显示中国 ?MAX(22,MAX(3,56,300,43),-78,86) & 显示300,【格式】 MOD (, ) 【功能】返回除以的余数。的小数位数决定了结果的小数位数。的符号决定了返回值的正负。,6求模函数,【例2-14】 ? MOD(8,5) &显示 3 ? MOD(42.20,4.0) &显示 2.20 ? MOD(42.20,-4.0) &显示 -1.80 ? MOD(-42.20,4.0) &显示 1.80 ? MOD(-42.20,-4.0) &显示 -2.20,【格式】 ROUND (

42、,) 【功能】对小数点后面的数字进行四舍五入。,7四舍五入函数,【例2-15】? ROUND(1234.1996,2) &舍入到百分位,显示1234.20 ? ROUND(1234.1996,0) & 舍入到个位,显示1234 ? ROUND(1234.999,-1) & 舍入到十位,显示1230,【格式】 VAL () 【功能】将指定的字符表达式转换为数值。 该函数按从左到右的顺序处理字符表达式,直到遇到一个非数字字符。在处理过程中,前面的空格被忽略。如果字符表达式的第一个字符不是数字,则 VAL( )返回的结果为 0。,8字符转换为数值函数,STORE 1234 TO a ? VAL(a) &显示 1234.00 STORE B1.37 TO a ? VAL(a) &显示 0.00 STORE 37B1.0 TO a ? VAL(a) &显示 37.00,【例2-16】 VAL (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论