VisualFoxPro基础第二章.ppt

上传人:牧羊曲112 文档编号:6523114 上传时间:2023-11-08 格式:PPT 页数:61 大小:430.50KB
返回 下载 相关 举报
VisualFoxPro基础第二章.ppt_第1页
第1页 / 共61页
VisualFoxPro基础第二章.ppt_第2页
第2页 / 共61页
VisualFoxPro基础第二章.ppt_第3页
第3页 / 共61页
VisualFoxPro基础第二章.ppt_第4页
第4页 / 共61页
VisualFoxPro基础第二章.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

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

1、第二章 VFP的基础知识,2.1VFP的数据类型(),2.2VFP的常量与变量(),2.3运算符与表达式(),2.4VFP的常用函数(),2.5VFP的文件类型,VFP描述语法引用的符号,第二章:VFP的基础知识,2.1 常量与变量,在数据库系统之中,每一个数据都会有一定的类型,现在我们开始介绍数据库中的数据类型。,2.2.1 常量,数值型常量:常数,用于表示一个数量的大小。由数字0-9,小数点和正负号构成,可以用科学计数法表示。在内存中用8个字节表示 取值范围:-0.9999999999E+19至 0.9999999999E+20 例:12 5.89E12 3.2E-9注意:如果我们希望在V

2、FP中显示我们输入的常量可以在命令窗口中先输入一个?,然后输入常量内容,按回车后会在主窗口中显示结果,注意标点符号用英文状态的标点,2.2.1 常量,货币型常量:表示货币的值。书写格式与数值型常量类似,但要加上一个货币符号($),采用4位小数。多于4位小数将四舍五入。在内存中用8个字节表示 取值范围:-922337203685477.5807至 922337203685477.5807 例$123.5679,2.2.1 常量,字符型常量 用英文字符单引号()或双引号(“)或方括号()把字符串括起来表示。这里的单引号或双引号或方括号称为定界符。定界符必须成对使用,当出现定界符本身也是字符串的内容

3、则需要另一种定界符来定界。例:“123”AVS FASFA“FD”T,为什么有三种不同的定界符号而不是一种,2.2.1 常量,思考内容 123和123的不同“OP”的输出效果。注意:这里我们可以用?输出常量,?表示从下一行显示若干表达式的值。?表示从同一行显示。,2.2.1 常量,日期型常量:用花括号作为定界符,括号内包括年月日的信息。各部分用分隔符隔开,分隔符有/或-或.和 空格 传统的日期格式:系统默认为美国模式“MM/DD/YY”年份可以用四位数字,也可以用两位,月和日用两位数字表示。如03/28/03 严格的日期格式:YYYY-MM-DD,2.2.1 常量,日期型常量:注意:传统的日期

4、格式只能在SET STRICTDATE TO 0状态下用。可以用SET DATE TO 命令设置输入状态。例 SET DATE TO ITALIAN(DD-MM-YY)SET DATE TO DMY(DD/MM/YY)SET DATE TO MDY(MM/DD/YY)SET DATE TO YMD(YY/MM/DD),2.2.1 常量,日期时间型常量:包括日期和时间两部分,日期部分与日期型相同。时间部分格式为hh:mm:ss 用8个字节存储数据。,2.2.1 常量,逻辑型常量:定界符为.用1个字节存储数据。其值有 真.t.y.T.Y.假.F.f.N.n.,2.2.2 变量,在使用过程中其值可以

5、改变的量。包括字段变量、内存变量两大类。变量例1:我们的银行存款余额,这就不是一个常量,今天是1000,明天新存入1000就是2000,这是一个典型的变量变量例2:请利用计算器计算1.95*3.75+3.28/1.68-5.42*1.68,2.2.2 变量,字段变量:(1)字段变量隶属于数据表文件。(2)数据表是存在于计算机中的一个二维表格,数据表中的每一列称为一个字段,是数据表进行数据处理的基本单位;数据表中的每一行内容称为一条记录,由若干个相关联的字段组成。(3)在数据表中,字段必须先定义后赋值,然后才可以使用。(4)字段变量名由汉字、字母、数字和下划线组成,必须以字母或汉字开头。(5)字

6、段变量的数据类型与前面的数据类型相同。,2.2.2 变量,内存变量:内存中一个存储区域,常被用来存储所需要的常数、中间结果或最终结果。变量名由汉字、字母、数字和下划线组成,必须由字母或汉字开头。注意:当内存变量名与字段变量名相同时,字段名优先于内存变量名,使用时可以在内存变量名前加上“M-”或“M.”以示区别,但赋值时不能使用该前缀。,2.2.2 变量,内存变量赋值格式1:=计算等号右边表达式的值,并将结果赋给等号左边的内存变量;只能给一个变量赋值 格式2:store to 计算表达式的值,并将同一个结果赋给一个或多个变量 注意:”=”左边只能是内存变量名,也允许是对象的属性名。表达式:由常量

7、、变量、函数和运算符组成。内存变量的值及类型在赋值时定义,同一个内存变量可多次赋值,它的值和类型取决于最后一次所赋的值,多个变量名之间用逗号隔开。,2.2.2 变量,内存区域,A=12,A=“ab”,B=A,A=3,说明:该命令执行时先判断是否有一个名字为A的内存变量,如果没有先开辟一块内存空间命名为A,然后将其赋值为12,说明:该命令执行时先判断是否有一个名字为A的内存变量,如果有则直接将其值进行修改,2.2.2 变量,思考题:x=56 y=98?X+x store“67”to x?X+X,2.2.2 变量,思考题:如果执行下列语句后效果如何 use 学生信息 姓名=“老五”?姓名?M.姓名

8、 use?姓名,2.3 表达式,在小学我们就学过四则运算表达式,在我们的VFP中同样存在这样的概念,但是其范围扩大和推广了,参与运算的不仅仅是简单的常量,而且可能是变量,不仅仅是数值可以运算,字符串、日期数据等都可以参与其中,内容丰富了很多。考察表达式我们主要从两个方面考虑:1、参与运算的数据的类型(日期、逻辑。)2、运算结果的数据类型,2.3 表达式,2.3.1 数值表达式 参与运算的数据类型:数值型 结果:数值型 运算符:+、-、*、/、%、*()数值表达式运算的优先级:()*或*、/、%+、数值型数据可以是常量或者变量 例:?3*2 a=5?8*a,数值表达式,算术运算按照先括号,再乘方

9、,然后乘除和取余,最后加减。在计算过程中间注意求余运算的结果与除数必须保持统一的正负号,也就是说除数如果是正数,余数也必须是正数(或是0),除数如果是负数,余数也必须是负数(或是0)。,注意?3*5和?“3*5”的区别,字符表达式,字符表达式将字符型数据连接起来形成.参与运算的数据类型:字符型 结果:字符型 运算符:+、-+:前后两个字符串首尾连接起来形成-:连接前后两个字符串,并将前字符串的尾部空格移到合并后新字符串的尾部。例:?“125”+“987”?“中国人”-“和平”特别注意和?“中国人-和平”的不同,“125987”,“中国人和平”,2.3.3 日期时间表达式,日期时间可以使用+和-

10、进行运算。日期+或-数值表示指定日期后或前若干天的日期。日期时间+或-数值表示指定日期时间后或前若干秒的日期时间。日期-日期表示两个日期相差的天数(结果数值型)注意:日期型比较的时候日期越晚其值越大日期时间-日期时间表示两个日期时间相差的秒数日期和日期之间,日期时间和日期时间之间不能进行+运算,2.3.4 关系表达式,关系表达式用于比较前后两个表达式的大小或是前后的关系,参与运算的数据类型:运算双方相同运算结果为逻辑型。运算符:、=、或!=)、=、=、$(该运算符仅适用字符型)可以用于数值、字符、逻辑和子串包含运算 数值型比较两个数的大小 日期或日期时间型数据越晚的日期时间值越大。逻辑型 真值

11、大于假值,2.3.4 关系表达式,实例:?1985-01-011985-01-02?6=5?.T.F.注意:下面几个例子的区别A=6?A=6 B=7 B=A=6,关系表达式,2.3.4 关系表达式,设置字符的排序次序 比较过程:系统对两个字符串自左向右逐个进行比较,一旦发现两个对应字符不同就根据两个字符的排序序列决定两个字符串的大小。设置比较次序:set collate to machine:机内码 空格大写字母小写字母汉字 PinYin:按拼音 空格小写字母大写字母汉字 Stroke:笔画 按书写笔画多少排序,2.3.4 关系表达式,字符串比较=:当两个字符串完全相同时候结果为.T.(长度和

12、内容)=:运算结果与 SET EXACT ON|OFF 的设置有关。处于OFF 状态时,如果右边的字符串与左边字符串的前面部分内容相同时,结果为真;处于ON 状态时,先在短字符串的后面加空格,使两个比较的字符串长度相同,再进行比较,直到两个字符串全部比较完毕。默认设置是OFF 状态。,2.3.4 关系表达式,2.3.4 关系表达式,1、无论在任何状态下“=”的比较必须要求两个字符串完全相同(包括对应位置的字符和长度)2、在非精确比较状态下的=比较是将右边比完为止,因此如果发现右边字符串比左边长则结果一定是.F.3、在精确比较状态下是把短的字符串后加空格到和长的字符串一样后在执行=方式的比较,包

13、含运算$【语法格式】$【功能】比较两个字符表达式,如果字符型表达式1包含在字符表达式2中,即字符型表达式1是字符型表达式2的子字符串,则运算结果为真(.T.),否则为假(.F.)。【说明】“$”运算符两边的数据类型必须都是字符型,运算结果是逻辑型。,2.3.4 关系表达式,例在命令窗口执行如下命令a1=湖北大学a2=湖北?a1$a2&显示.F.?a2$a1&显示.T.,2.3.4 关系表达式,返回,2.3.5 逻辑表达式,逻辑表达式 由逻辑型数据连接起来形成的,结果依然是逻辑型的数据。.not.或!逻辑非.and.逻辑与.or.逻辑或 优先级:.not.and.or.,2.3.5 逻辑表达式,

14、运算符优先级 最先执行:算术运算符、字符串运算符和日期时间运算符 其次:关系运算符 最后:逻辑运算符 如果有特殊的运算要求可以用圆括号来分隔。,2.3.5 逻辑表达式,运算符优先级 实例:a=30 b=-10 L=.F.?(A+B)/2=15 OR L)AND”OR”$”X”,15,.T.,.T.,.F.,.F.,2.4 常用函数,数值函数字符函数日期时间函数数据类型转换函数测试函数,2.4 常用函数,考察一个函数的几个方面:1、函数的意义2、函数的参数有几个,各是什么类型3、函数的返回值是什么意义,类型是什么?,2.4.1 数值函数,ABS(数值表达式):绝对值函数 例?Abs(-6)sig

15、n(数值表达式):符号函数。返回表达式结果的符号,当结果为正、负和零时结果分别为1、-1、0 例?Sign(-7),6,-1,实例分析:判断在1985年一月一日前后300天出生的学生信息,brow for abs(csny-1985-01-01)=300,2.4.1 数值函数,int(数值表达式):取整数函数 例?int(6.85)round(数值表达式1,数值表达式2):。四舍五入函数,其中数值表达式2表示的是保留小数的位数或者整数的舍入位数。round(76.789,2)保留小数点后两位 round(76.789,-1)整数部分舍入一位,6,2.4.1 数值函数,mod(数值表达式1,数值

16、表达式2):取余数函数 把数值表达式1和数值表达式2相除得到的余数部分,结果的正负号和数值表达式2的相同求最大值和最小值函数 max(数值表达式1,数值表达式2,)min(数值表达式1,数值表达式2,),2.4.2 字符函数,Len():返回字符表达式的值的长度,返回值为数值型。y=“xop湖北”?len(y)?len(“y”),8,1,2.4.2 字符函数,lower():将指定表达式值中大写字母转换为小写字母,upper函数正好相反。?Lower(“Hand”)y=“qut”?Upper(y+“M”),hand,Upper(“qut”+“M”),Upper(“qutM”),QUTM,2.4

17、.2 字符函数,Space():返回若干个空格组成的字符串。x=“chin”y=“a”z=“hello”?x+space(2)-y+z?len(x+space(2)-y+z),“chin”-”a”+”hello”,“china”+”hello”,chinahello,2.4.2 字符函数,Trim():返回指定字符表达式值去掉尾部空格形成的字符串Ltrim()返回指定字符表达式值去掉前导空格形成的字符串alltrim()返回指定字符表达式值去掉前导和尾部空格后形成的字符串?Trim(“afgh”)?ltrim(“afgh”)?alltrim(“afgh”)?trim(ltrim(“afgh”)

18、,2.4.2 字符函数,取子串函数Left(,):从指定表达式的值的左端取一个指定长度的子串作为函数值Right(,):从指定表达式的值的右端取一个指定长度的子串作为函数值Substr(,起始位置,):从指定表达式的值的指定起始位置取一个指定长度的子串作为函数值 x=“china”?left(x,2)?right(x,2)?subs(x,2,3),ch,na,hi,2.4.2 字符函数,几个例子:1、查考生号的3-6位为“001”的学生信息2、查姓名的第二个字为“毛”的学生信息3、查姓名以“平”结尾的学生信息,2.4.2 字符函数,求子串位置函数At(,):如果字符表达式1是字符表达式2的子串

19、,则返回字符表达式1首字符在字符表达式2中的位置,若不是子串返回0?At(“x”,“fox”)?At(“xy”,“fox”),2.4.3 日期时间函数,Date():返回当前系统日期,日期型Time():返回当前系统时间,格式为24小时制的 hh:mm:ss 字符型Datetime():返回当前系统时间,日期时间型Year():从日期或者日期时间表达式中返回年份,数值型,2.4.3 日期时间函数,?Year(2002-09-10)现在是哪一年如何求?,2.4.3 日期时间函数,浏览今年满20岁的学生信息Brow for year(date()-year(出生日期)=20,2.4.4 数据类型转

20、换函数,数值型转字符串Str(,):将数值表达式的值转换为字符型注意:转换时会根据需要四舍五入。当不设长度时默认为长度10位,小数点0位?Str(123.55)?len(Str(123.55),2.4.4 数据类型转换函数,在长度大于理想的转换长度时会在字符串前加上相应的前导空格补齐。例:?“A”+str(-192.86,7,1)在长度小于理想的转换长度时会先考虑整数部分转换后调整小数位数例:?“A”+str(-192.86,4,1)在长度小于理想的转换长度且整数部分都无法满足则返回一串*,2.4.4 数据类型转换函数,字符串转换为数值Val(字符表达式):注意:如果字符串中包含非数字字符会仅

21、转换前面部分,如果首字符非数学符号返回0 x=“129.46”Y=“98”?Val(x+y)?Val(“123.5.6”),2.4.4 数据类型转换函数,找出学号的尾数3位大于100的学生信息Brow for val(right(学号,3)100,2.4.4 数据类型转换函数,Ctod():字符表达式值转换为日期型?ctod(“2002/02/06”)Dtoc():日期型数据转换为字符串。,2.5 VFP的命令结构和书写规则,2.5.1 VFP的命令结构,.VFP命令的一般格式 FIELDS FOR WHILE 在命令的一般格式中,是必选项,它是一个英文单词,例如CREATE、DISPLAY、

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

23、OR短语确定命令执行时所涉及的记录,是一个逻辑值,用来指定记录的筛选条件,条件为真的记录参与命令动词规定的运算。如果命令中包含范围短语,在指定范围中筛选出符合条件的记录;否则在所有记录中进行筛选。,2.5.1 VFP的命令结构,WHILE 短语WHILE短语与FOR短语的作用类似,区别是一旦遇到第一个不满足条件的记录就停止筛选。FIELDS 短语FIELDS短语用来指定数据表中参与运算的列,当需要除备注型和通用型字段之外的所有字段参与运算时,该短语可以缺省。,2.5.1 VFP的命令结构,返回,2.5.2 命令和短语的书写规则,VFP提供了近500条命令,它的基本结构包括命令动词和若干短语,用于说明命令的操作对象、操作结果和操作条件,命令中短语的个数与顺序不限,非常灵活。VFP命令的主要书写规则:1.命令动词以及各短语之间必须用至少一个空格分隔;2.VFP命令必须以动词开头,短语次序不限;3.命令动词和短语可以只书写前4个字母,英文字母不区分大小写;命令中的间隔符(空格、逗号、括号等)必须用ASCII字符;4.一个命令行只能写一条命令;一条命令的长度可达8192个字符。若分行书写,除最后一行外,其他各行尾部必须加一个分行符“;”。,返回,返回目录,请完成书本的课后习题,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号