VisualFoxPro的语言基础.ppt
《VisualFoxPro的语言基础.ppt》由会员分享,可在线阅读,更多相关《VisualFoxPro的语言基础.ppt(95页珍藏版)》请在三一办公上搜索。
1、1,第2章 Visual FoxPro基础知识,2.1 Visual FoxPro的数据基础(熟悉)2.2 常量和变量(了解和掌握)2.3 运算符与表达式(掌握)2.4 常用函数(掌握)本章小节,2,2.1 VFP的数据类型 数据有型和值之分,型是数据的分类,值是数据的具体表示。在实际工作中所采集到的原始数据,通常要经过加工处理,变成对用户有用的信息。而数据处理的基本要求是对相同类型的数据进行选择归类。为了适应存储数据的需要,VFP提供了许多数据类型,常用的数据类型有11种。1、字符型(C型)该类型由字母、汉字、数字、空格、符号和标点等组成,通常用来存储姓名、单位、地址等信息,宽度由用户定义,
2、范围为1254个字节。例如:x=“安徽理工大学”课程名=“Visual FoxPro 程序设计”,3,2、数值型(N型)该类型用于表示数量,它由数字09、一个符号(+或-)和一个小数点(.)组成。数据类型在内存中用8个字节表示,在数据表中长度为120个字节。该数据表示范围为-0.999 999 999 9E+19+0.999 999 999 9E+20。小数点的位置和字段的宽度由用户创建该字段时指定,宽度包含小数点和小数位数。数据还可以分为整数、实数和浮点数等。例如:num1=-.3568 num2=5.3651,4,3、浮点型(F型)该类型以浮点数的形式存储数值数据,用较精确的位数存储数据,
3、常用于科学计算,其宽度的规定和数值型相同。4、双精度型(B型)该类型用于取代一般的数值类型,以便能提供更高的数值精度。它只用于表中字段的定义,采用固定存储长度的浮点数形式,常用于科学计算,存储精度比数值型高,可精确到小数点后15位,存储占8个字节。该类型数据不能用内存变量存储。双精度类型不同于数值类型,其小数点位置由输入的数据值决定。5、整数型(I型)该类型用于无小数部分数值的存取,即存放整数。只用于表中字段的定义,存储用二进制形式表示,占4个字节。例如:x=567,y=-123,5,6、货币型(Y型)使用金钱时可使用货币数据类型以代替数值类型,其存储空间占8个字节,只保留4位小数,超过4位将
4、四舍五入到4位。例如:y=$1000.527、日期型(D型)该类型用于存储日期数据,其存储格式为“月/日/年”,日期型字段的宽度是固定,占8个字节,其中年、月、日各占2个字节。显示格式有许多种,常用的为“MM/DD/YY”,它受SET DATE、SET MARK、SET CENTURY命令设置值的影响。取值0001/1/19999/12/31。例如:09/05/07,6,8、日期时间型(T型)该类型用于存储日期和时间值,存储格式为“月/日/年 时:分:秒 AM或PM”。其日期部分显示格式受SET DATE,SET MARK,SET CENTURY命令设置值的影响,取值为1/1/10012/31
5、/9999;时间部分的显示格式受SET HOURS和SET SECONDS命令设置的控制,取值为00:00:00 A.M.11:59:59 P.M.。例如:09/05/07 10:10:50 AM9、逻辑型(L型)该类型用于存储只有两个值即真(.T.)和假(.F.)的数据,其长度固定为1个字节。输入T(t)或Y(y)表示真值;输入F(f)或N(n)表示假值。例如:在教师档案表中“婚否”字段位逻辑型字段,可用“真”表示已婚,而用“假”表示未婚。,7,10、备注型(M型)该类型用于数据块的存储,可以存放多种信息,可以是字符文本、源程序代码等数据,宽度固定为4个字节。字段内容并不存储在记录中,而是存
6、放在系统为每个含有备注型字段的表自动建立的一个和表同名的备注文件(后缀为.FPT)中,记录中仅存储指向备注文件中相应内容的指针。例如:在学生档案表中可以将“简历”字段设置为备注类型。该类型不能用内存变量存储。,8,11、通用型(G型)该类型用于存储OLE对象,其中包含对OLE对象的引用。一个OLE对象的具体内容可以是一个电子表格或一个字处理器的文档、图片、声音等。这些OLE对象是用其它应用程序建立的,该字段类型的长度固定为4个字节。与备注型字段一样,通用型字段数据也存入与表文件名相同而扩展名为“.FPT”的文件中,而通用型用4个字节存储一个指针,该指针指向存储在.FPT文件中的实际内容。该类型
7、也不能用内存变量存储。,9,2.2 常量与变量2.2.1 常量常量是指在程序运行过程中其值不发生变化的量。FoxPro支持字符、数值、日期、日期时间、货币和逻辑6种类型的常量。1、数值型常量数值型常量(N):是可以带正负号的整数或小数(正号可省略),还可以用科学记数法表示,如2.5E+15。这样表示的常量是N型,而不是F型。例如:以下是合法的数字型常量。80、-523.6、569852.52,10,2、字符型 字符型常量(C):是用定界符括起来的字符串。定界符有3种,即单引号、双引号和方括号。在定义和使用字符型常量时必须注意:在字符串的两端必须加上定界符,字符串。否则系统会把该字符串当成变量名
8、。如“姓名”是一个变量名,而“姓名”是一个常量定界符只能是ASCII码字符(即半角字符),不能是全角字符。即在输入时要用英文半角输入法。左、右定界符必须匹配。即如果左边是双引号,那么右边也必须是双引号。定界符可以嵌套,但同一种定界符不能互相嵌套,具体例子如下所示。,11,例如:合法字符串:古语云:天下没有不散的宴席 非法字符串:古语云:天下没有不散的宴席 合法:“ABDE”、王三、HAPPY、他说:“好”3、逻辑型逻辑型常量(L):也称布尔型常量。它只有两种值,即逻辑真值或逻辑假值。逻辑真可以用.T.或.Y.表示,也可以用.t.或.y.来表示;逻辑假可以用.F.,.N.,.f.,.n.来表示。
9、注意:字母T,N等的两端必须紧靠小圆点(圆点与字母之间不能有空格),圆点和字母都必须是半角符号,不能是全角字符。4、日期型日期型常量(D):一定要包括年、月、日3个值,每两个值之间由一个分隔符(如斜杠“/”)隔开。,12,日期型常量要放在一对花括号中,开始位置上再加上一个“”符号(VFP中采用严格的日期格式,即yyyy/mm/dd)。例如:以下是合法的日期型常量 2007/09/01、2007-09-01、2007.09.01 空值表示为、/、:。其显示格式系统原来默认的方式是 MM/DD/YY,但可以改变输出格式,其命令如下所示。设置日期型常量的输出格式命令是:SET MARK TO 日期分
10、隔符&日期分隔符只限一个字符【例2.1】将日期型常量的输出分隔符为“;”。在命令窗口中依次输入以下命令:,13,clearset mark to;d=2007/09/05?d,图21 将日期型常量的输出分隔符改为“;”,14,设置日期型常量的输出格式的命令是:set date to maerican|mdy|dmy|long|short【例2.2】设置日期型常量的指定格式的示例。,上表中的各个命令效果见图22,15,图 2-2 设置日期型常量的输出格式,16,5、日期时间型日期时间常量(T):既含日期又含时间,日期值包括年、月、日,时间值包括时、分、秒,其中时分秒的分隔符为冒号(:)。它的书写
11、方式近似于日期型,例如2002/01/15 10:00 p。空值表示为-,:、-,:、-,:和-,:。日期和时间数据之间必须有空格。6、货币型货币型常量(Y):用符号“”来标识,如123.3。*定义常量名在VFP的程序设计中,可以使用#DEFINE预处理器命令为某个常量值命名。例如,在程序中令PI作为圆周率3.1415926536的一个常量名的定义方法如下所示。例2.3:#DEFINE PI 3.1415926536,17,2.2.2 变量变量是指在程序运行过程中其值可能发生变化的量。变量是程序的基本单元,在VFP中,变量分为字段变量、用户内存变量和系统变量。用户内存变量又称内存变量。前两种是
12、用户根据需要定义的,它是由字母、汉字、数字和下划线组成,但是必须以字母、汉字开头,变量名长度可以在1254个字符之间;而系统变量名称由系统规定。1.字段变量字段变量是在数据库中定义的变量,是数据库表文件结构中的数据项,每个字段名就是一个字段变量。字段变量是永久变量,它是一种多值变量,数据表中的每一条记录对应某一字段都有一个取值。当用字段名作变量时,它的当前值就是表的当前记录的值。,18,2.内存变量内存变量是用户通过命令或程序临时定义的变量,表示一块工作单元,它独立于表文件结构之外而存在于内存中的变量,用于存储数据处理过程中所需要的常量、中间结果等数据。它具有字符型、数值型、日期型、时间型、逻
13、辑型和货币型等多种数据类型。VFP的内存变量与其它高级语言中的变量有所不同,它不需要事先说明其类型,其数据类型是根据当前所存储的数据的类型决定的。必须首先给所使用的内存变量赋一个值,这个变量才可以使用,否则,系统会提示:内存变量没有找到!,19,(1)内存变量名内存变量名可由字母、汉字、数字或下划线组成。给变量命名,应力求做到“见名知义”。建议:变量的第一个字符标识该变量的数据类型,一般采用小写的类型标识字母,如“nVar1”应解释为N型的变量,这样做除了意义明了之外,还可避免使用系统已使用的单词和变量(注:系统内存变量名的第一个字符是下划线);变量名的其余字符标识该变量的含义,如由变量名“c
14、Name”可知它是C型变量,内容是某个人的姓名。,20,(2)字段变量与内存变量的比较 两者最大的区别是:字段变量是表结构的一部分,因此离不开表。要使用字段变量,必须首先打开包含该字段的表。而内存变量与表无关,不打开表照样可以使用。内存变量和字段变量可以同名,此时,将优先存取字段变量,屏蔽同名的内存变量。若要明确指定访问内存变量,则应在内存变量名前加上指别符M.或者M-(由减号加大于号组成),即M.或M-。例如:内存变量name和表的字段名name同时使用,这是内存变量就要M-name或者M.name。而字段就可以字节使用name。,21,3.系统变量系统变量是特有的变量,是系统内部提供的,学
15、会使用系统变量会带来许多方便。系统提供的系统变量很多,在使用DISPLAY MEMORY命令显示内存变量时,可以看到这些变量的当前值。下面举例说明这些系统变量的使用方法。【例2.3】通过_CALCVALUE系统变量将一个数字传到计算器中,然后通过计算器的计算,输出计算结果。在命令窗口中输入:CLEAR&清屏幕_CALCVALUE=20&给该系统变量赋值ACTIVATE WINDOW calculator&显示计算器得到如图2.3所示结果。,22,单击计算器的“+”,然后输入“30”,再单击“=”,得到50。在命令窗口中输入如下命令。?_CALCVALUE&输出计算的结果这时在屏幕上显示50.0
16、0。这个过程说明了怎样利用_CALCVALUE系统变量将一个数字传到计算器中,然后再从计算器获取数据。(见图2-4),图2.3,23,图2.4,24,2.2.3、数组变量数组变量是一种有组织的内存结构变量,它的若干性质和内存变量是一样的。但它是一种结构式变量,是具有相同名称而下标不同的一组有序内存变量。VFP允许定义一维和二维数组,数据在使用之前需要先定义。1、数据元素及其引用 数组中的每个有序变量构成了数组的成员,这些变量称为数组元素。数组元素的名称由数组名和用括号括起来的下标组成。如AA(1),表示一维数组AA的第1个元素;BB(2,3)表示二维数组BB的第2行、第3列元素。数据元素的引用
17、说明如下:,25,数组下标使用圆括号,二维数组的下标之间使用逗号隔开;数组的下标可以是常量、变量和表达式,如nA(1),nA(b1),nA(a+b);数组的第1个下标是1,也就是说数组下标是从1开始的;数组元素的类型为最近一次被赋值的类型;数组元素和简单内存变量一样都可以被赋值和引用。2、定义数组VFP中的数组和其它高级语言中的数组有所不同,数组本身是没有数据类型的,各种数组元素的数据类型与最近一次被赋值的类型相同。也就是说,VFP中的数组实际上只是名称有序的内存变量。创建数组的命令如下所示。,26,语法:DIMENSION|DECLARE|PUBLIC(,),(,).功能:定义数组。数组名是
18、作为一个内存变量名来管理和命名的,所以其命名规则和管理与内存变量相同。在命令中,DIMENSION,DECLARE表示定义的是局部数组,而PUBLIC表示定义的是全局数组。前者只对当前程序有效,后者对整个程序有效。定义数组必须指定数组名、数组的维数、数组大小。系统规定数组下标的下限是1。数组中各个元素在数组中的位置由下标值决定。,27,【例2.4】定义A(2),B(2,2)数组。DIMENSION A(2),B(2,2)该语句表示数组A中有两个元素,分别为A(1)和A(2)。数组B中有4个元素,分别为 B(1,1)、B(1,2)、B(2,1)和B(2,2)。*:二维数组元素在内存中是按行存储的
19、。可以用一位数组的形式引用二维数组元素。例如,B(4)与B(2,2)等价。数组定义后,数组中的各个元素初始值是.F.。数组中各个元素的取值类型可以不同。用赋值命令可以对数组元素赋值,也可以对数组中的所有元素赋同一值。在可以使用简单内存变量的地方,均可以使用数组元素。在同一运行环境中,数组名不能与简单内存变量同名。,28,3、数组与数据表之间的数据传送(1)、将数据表中当前记录的指定字段值传输到数组的各个元素中格式:scatter fields memo to blank功能:从指定字段中的第一个字段开始,将表的当前记录依次复制到数组中的各个数组元素中。【例2.5】将数据表中的当前记录的指定字段
20、传输到数组中 use 学生信息 scatter fields 学号,姓名,出生日期,住校否 to x?x(1),x(2),x(3),x(4)(2)、将数组各个元素的数据值传输到表中当前记录的指定字段格式:gather from fieldsMEMO,29,功能:将数组中的各个数组元素的内容依次复制到表的当前记录 的指定字段中。【例2.6】将数组各个元素值传输到表的当前记录的指定字段中 use 学生信息Dimension X(4)X(1)=“071101404”X(2)=陈兵X(3)=“男”X(4)=“计算机”Append blankGather fields 学号,姓名,性别,专业 from
21、xdisplay,30,2.2.4 内存变量的操作1、内存变量赋值命令格式一:STORE TO|例如:STORE 7 TO nVar1 STORE 李梅 TO cName1,cName2格式二:|=例如:nVar2=10 nVar1=7*格式一和格式二的区别就在,格式一可以给多个变量赋予相同的值,而格式二只能个一个变量或数组赋值。,31,2、输出内存变量命令格式:?/?AT?先回车换行,在输入表达式的值;表达式为空时,表 示回车换行?在当前行输出表达式的值At 表示在显示表达式的值【例2.7】输出变量nA1,nA2,nA3的值。STORE 2 TO nA1,nA2,nA3?nA1,nA2,nA
22、3?nA1,nA2,nA3?nA1,nA2,nA32 2 2 2 2 22 2 2,32,3、内存变量的显示格式:LIST|DISPLAY MEMORY LIKE TO PRINTER|TO FILE 功能:显示当前已定义的内存变量名、作用范围、类型和值说明:LIKE子句表示显示与通配符相匹配的内存变量。通配符有*和?两种,*表示通配任意长度的字符,?表示通配一个字符。例如,A*,表示以A开头的任意长度所有字符串;A?表示以A开头,长度为二的所有字符串TO PRINTER子句表示能将屏幕显示内容输出到打印机TO FILE子句表示能将屏幕显示内容存入文件。,33,【例2.8】常用类型的内存变量赋
23、值与显示的示例Store 23.32 to AStore“jim”to BStore.T.To CStore$100 to dE=2007.05.04F=2007.08.29 16:47:50PMStore 8 to x,y,zDimension G(3)G(1)=234.53G(2)=“skdfh38”G(3)=.F.List memory like?,34,图25 输出结果,35,4、内存变量的保存与恢复 如果需要使用在命令窗口定义的内存变量,可以将其保存在扩展名为“.mem”的文件中,再次使用时从文件中恢复即可。(1)、内存变量保存格式:SAVE TO ALL LIKE|ALL EXCE
24、PT 功能:将制定内存变量信息保存到指定的变量文件中。说明:“ALL LIKE”只保存符合通配符条件的所有变量“ALL EXCEPT”只保存不符合通配符条件的所 有变量,36,(2)、内存变量恢复格式:RESTORE FROM ADDITIVE说明:当缺省ADDITIVE时,清楚内存所有变量后再恢复;而带有时则在现有的变量后追加恢复的内存变量。5、内存变量的清除格式:RELEASE ALL LIKE|EXCEPT【例2.9】从内存中清除变量示例RELEASE A,BRELE ALLRELE ALL LIKE A*RELE ALL EXCEPT A*,37,2.3 运算符与表达式表达式是VFP命
25、令的重要组成部分,它是由运算符将常量、变量、函数等运算对象连接起来的式子。表达式的运算顺序:按照运算符优先级别从高到低的顺序进行计算,同级别的运算按从左到右的顺序计算。运算符是处理数据运算问题的符号。运算符也叫操作符,它表示在操作数(参与运算的数据)上的特定动作。比如在算术式1+2中,1和2是操作数,+是运算符。带两个操作数的操作符叫双目操作符,带1个操作数的操作符叫单目操作符。如在1+2中,+是双目操作符,它表示前后两个数相加;在+2中,+是单目操作符。,38,2.3.1 算术运算符与数值表达式1、算术运算符运用于数值数据(指数值型、浮点型、双精度型和整数型)和货币数据,其优先级从高到低:(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualFoxPro 语言 基础
链接地址:https://www.31ppt.com/p-5307521.html