第3章VFP语言基础_第1页
第3章VFP语言基础_第2页
第3章VFP语言基础_第3页
第3章VFP语言基础_第4页
第3章VFP语言基础_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

1、第第3章章 VFP语言基础语言基础 3.1 标识符标识符 3.2 数据类型数据类型 3.3 常量与变量常量与变量 3.4 数组数组 3.5 运算符和表达式 3.6 常用标准函数常用标准函数3.1 标识符标识符 关键字 在VFP中有一些标识符被称为关键字,已被系统预先定义,它们具有特殊的用途。如for,if,else,endif,do,while,case等。 预定义表示符 具有特殊含义的标识符,以固定的形式用于特定的地方,如标识库函数名和处理命令。 处理命令。如input,accept,clear,locate,use,list等。 标识库函数名。如abs,sqrt,mod,max,left,

2、year,ctod,eof,bof等 用户自定义标识符 允许用作标识符的字符有:26个英文字母,数字,下画线(_)等一些可打印字符。 标识符的命名规则:(1)以字母、汉字或下画线开头,且后跟字母、数字、下画线。(2)有效长度随系统而异,但最多前8个字符有效(超长部分被舍弃)。3.2 数据类型 数据类型是指简单数据的基本属性,VFP的数据类型可以按需要分为两大类:一类是内存变量,另一类是用于表中的字段(即字段变量)。适用于内存变量与字段变量 1字符型(character) 字符型数据类型标识符为C,由字母、数字、一些特殊字符、汉字等组成,字符型数据的长度为0254,每个字符占一个字节(一个汉字占

3、两个字节一个汉字占两个字节)。 2货币型常量 货币型变量类型标识符为Y ,是由符号“$”开头的一个表示货币量的数字。 3数值型 数值型类型标识符为N 。型常量可以是由阿拉伯数字、小数点和正负号构成的各种整数、小数或实数。 数值型数据的长度为120位,每个数据占8个字节。 例如:例如:-196-196,31415926535,0.2831E+20.2831E+2 4日期型 日期型类型标识符为D ,用来表示一个具体的日期。默认格式为:yyyy-mm-dd或yyyy/mm/dd。 例如:例如:2004/07/112004/07/11空白日期空白日期 或或/ 注意: Visu

4、al FoxPro默认使用严格的日期格式,如果要使用通常的日期格式,必须执行SET命令。 5日期时间型 日期时间型数据类型标识符为T ,用来表示一个具体的日期与时间。默认格式为:yyyy-mm-dd,hh:mm:ssa|p。 例如:例如:2004/07/11 11p2004/07/11 11p 2004/07/11 11:12:30p 2004/07/11 11:12:30p 日期与时间数据之间必须用空格分隔日期与时间数据之间必须用空格分隔 6逻辑型 . .适用于字段变量的数据类型 字段变量是与数据表中某个字段相联系的,在创建数据表时定义的一个字段就对应一个字段变量,数据表中的字段名即其字段变

5、量名。 1. 浮点型(1)单精度浮点型(Float)。VFP包含此类型是为了提供兼容性,与数值型等价。(2)双精度浮点型(Double)。双精度浮点型用来取代数值型,以便能提供更高的数据精度。双精度浮点型数据采用固定存储长度的浮点数形式。与数值型不同,双精度浮点型数据的小数点位置是由输入的数据值决定的,每个双精度浮点型数据占8个字节。双精度浮点型数据的取值范围是:+/-4.9406564841247E-324+/-1.79769313486232E308。 2. 备注型(Memo)备注型数据类型标识符为M,用来表示一段文本数据。备注内容的多少只受内存可用空间的限制。备注型字段的内容不能直接存放

6、在.dbf文件中,而是由系统自动将备注的内容存放在主文件名与表名相同扩展名为.dbt的文件中。 3. 通用型(General) 通用型数据类型标识符为G,可以表示类似“照片”、“Word文档”、“Excel工作簿”等OLE对象。通用型数据的多少只受内存可用空间的限制。 4. 整型(Integer) 整型数据类型标识符为I,可用来表示正负整数,其取值范围是: -21474836472147483646, 整型字段占4个字节。 5. 二进制数据类型 二进制数据包括二进制字符型和二进制备注型两种,用于存储任意不经过代码页修改而维护的字符型数据或备注型数据。它们只能用于表中的字段。 只适用于内存变量的

7、数据类型 对象型(Object),是用于存储类的具体实例的数据类型,类型标识符为O。对象型数据可以存取表单、控件等系统对象,还可以存取用户自定义对象。字段类型字段类型代号代号说明说明字段宽度字段宽度使用示例使用示例字符型C字母、汉字和数字型文本每个字符为1个字节,最多可有 254 个字符学生的学号或姓名, 8199101 或 李立货币型Y货币单位8 个字节工资, $1246.89日期型D包含有年、月和日的数据8 个字节出生日期, 02/25/2000日期时间型T包含有年、月、日、时、分、秒的数据8 个字节上班时间, 02/25/2000 9:15:15 AM逻辑型L“真”或“假”的布尔值1 个

8、字节课程是否为必修课, .T. 或 .F.数值型N整数或小数在内存中占 8 个字节;在表中占1 至20个字节考试成绩, 83.5双精度型B双精度浮点数8 个字节实验要求的高精度数据浮点型F与数值型一样整型I不带小数点的数值4 个字节学生的数量通用型GOLE 对象在表中占 4 个字节图片或声音备注型M不定长度的一段文字在表中占 4 个字节学生简历字符型(二进制)C任意不经过代码页修改而维护的字符数据每个字符用1个字节,最多可有 254 个字符常量常量 常量:在程序的运行过程中不改变其值的量 常量的种类: 数值型常量 字符型常量 逻辑型常量 日期型常量 货币型常量数值型常量数值型常量 用整数、小数

9、、科学计数法表示的数 举例:123、-200、3.1415926、2.34E2字符型常量字符型常量 由一串字符组成的字符串 表示:用“”(双引号)、 (单引号)、 (方括号)括起来 举例: “北京”、武汉大学、123.456 注意:最长只能为254个字符逻辑型常量逻辑型常量 表示“真”或“假”的量 表示方法: “真”.T.、.Y.、.t.、.y. “假”.F.、.N.、.f.、.n. 注意:两边的点不能少日期型常量日期型常量 表示日期和时间的量 严格的日期格式: YYYY-MM-DD hh:mm:ss a|p 举例: 2010/10/30表示2010年10月30日 2010-10-30 13:

10、25:39表示2010年10月30日下午1点25分39秒常用日期格式:常用日期格式:MM/DD/YY hh:mm:ss a|p举例:10/30/10表示2010年10月30日10/30/10 13:25:39表示2010年10月30日下午1点25分39秒改变日期格式改变日期格式 可以改变日期的输入格式 SET STRICTDATE TO 0 设置为常用格式 SET STRICTDATE TO 1 设置为严格格式 可以改变日期的显示格式 工具|选项|“区域”标签中“日期和时间”货币型常量货币型常量 表示货币值的量 表示:以$开头,4舍5入到小数点4位 举例: $123.456789结果为123.

11、4568变量变量 在程序的运行过程中可以变化的量 分类: 内存变量:由用户定义并使用的内存变量是一种临时变量,以字符打头不超过128个字符 系统内存变量:系统使用的内存变量以下划线开头,用以控制外部设备及有关信息的处理 字段名变量以数据表的字段名作为变量引用其值为当前记录相应字段的值字段变量可以有13中不同的类型:字符型、数值型、浮动型、双精度型、整型、货币型、日期型、日期时间型、逻辑型、备注型、通用型、二进制字符型和二进制备注型变量名变量名 命名规则 以字母、汉字或下画线开头 由字母、汉字、数字、下画线等符号组成 最多128个字符 不能与保留字相同 举例:xsbh、xm、姓名_1等等 注意:

12、 该规则可用于函数名、库名、表名、字段名等 变量名不可与系统保留字同名变量类型和值变量类型和值 6种变量类型 字符型 数值型 逻辑型 日期型 日期时间型 货币型 注意: 变量无需申明,通过对变量赋值决定变量类型赋值命令 = STORE TO 举例:xx=1.5xy=青岛z=2010-9-18 13:25:34STORE 1 TO a, b, c是否团员=.T.系统内存变量系统内存变量 由VFP自动生成和维护的变量一般以下划线开头 举例:_DIARYDATE &当前日期_CLIPTEXT&剪贴板文本 例通过_calcvalue系统变量将一个数字传到计算器中, 激活计算器窗口并计算

13、结果。clear_calcvalue=20activate window calculato例往剪贴板中写入信息_CLIPTEXT=hello!“查看剪贴板变量显示命令变量显示命令? | ? 格式:? | ? 功能:计算并显示表达式的值 说明:?换行显示(从屏幕下一行第一列开始显示结果)?不换行显示(从屏幕当前列开始显示结果 举例:? xx? ? xy? 是否团员? “I am a student.”表示可用逗号隔开多个表达式。?“xx=“,xx 例题: Store 2*4 to a1,a2,a3 ?a1=,a1,a2=,a2,a3=,a3 ?a1=6,a1,a2=5,a2,a3=4,a3 变

14、量显示命令变量显示命令LIST/DISPLAY MEMORY 格式:LIST|DISPLAY MEMORY LIKE TO PRINT 功能:显示当前已定义的内存变量, 包括变量名、有效范围、类型、值 举例: LIST MEMORY&滚动显示 DISPLAY MEMORY&分屏显示 DISPLAY MEMORY LIKE x*&显示所有以x开头的变量 例例 STORE dggaf TO a1 STORE dggaf TO a1 a2=2004-04-25a2=2004-04-25 c=.t.c=.t. LIST MEMO LIKE a?LIST MEMO LIKE a?

15、 例例 显示建立的内存变量显示建立的内存变量, ,执行如下命令:执行如下命令: LIST MEMORY LIKE ?LIST MEMORY LIKE ?数组 数组的概念及特点 数组的定义 数组的赋值数组的概念及特点数组的概念及特点 数组的概念名字相同、用下标区分的内存变量 数组元素数组中的每一个变量 特点同一数组中各元素可以是不同的数据类型数组可以不带下标使用 在赋值号左边时表示整个数组 在赋值号右边时表示该数组的第一个元素数据可以在数组和数据表间相互转换数组的定义数组的定义 格式:DIMENSION |DECLARE () ,() () ,() 说明:数组下标下界为1 例如:DIMENSIO

16、N c(4) DIMENSION a(3) , b(2,3)数组的赋值数组的赋值 一个元素一个元素地赋值a(1)=10 a(2)=“山东科大” a(3)=2001-10-29b(1,1)=2.3 b(1,2)=“青岛” b(1,3)=.T.b(2,1)=4 b(2,2)=78 Store 2001-10-29 to b(2,3) 数组整体赋值a=40 b=0 如果定义的数组未赋初值,系统默认为逻辑值 .F. 二维数组可以当作一维数组使用b(1,2)相当b(2) b(2,2)相当b(5) 例例 数组定义和赋值。数组定义和赋值。 DIMENSION a(10), b(3,4)DIMENSION a

17、(10), b(3,4) a=0 a=0 STORE 6 TO b STORE 6 TO b b(1,2)=Visual FoxPro b(1,2)=Visual FoxPro同一数组的不同一数组的不同元素可以存同元素可以存放不同类型的放不同类型的数据数据例题:级数输出 dimension x(20) x(1)=1 x(2)=2 ?x(1),x(2) for i=3 to 20 x(i)=x(i-2)+x(i-1) ?x(i) endfor return运算符 分类算术运算符关系运算符逻辑运算符字符运算符算术运算符算术运算符 运算对象和运算结果可以是数值型或日期型 运算符 优先级 *或:乘方

18、高 *:乘 、 /:除 %:取模(或取余),取两数相除的余数 +:加、 -:减 低 举例: ? 5/3 结果:1.67 ? 5%3 结果:2 ?-3*2-5 结果:4.00 ?2*7%32+3 结果:8算术运算符算术运算符 举例? 3/2&返回1.5? 5.5%3 &返回2.5? Int(5/3)& 1,取得数值的整数部分? 62&返回36? 2001-12-29+4&返回2002-1-2? 2002-3-1 -2001-12-29&返回62? 2002-3-1 1&返回2002-2-28? 2000-3-1 1&返回2002-2

19、-29字符运算符字符运算符 运算对象和运算结果均为字符型 +:字符串连接 -:字符串连接,将两字符串尾部空格移到结果字符串尾部 举例 ? “ABC ”+“DEF ”&“ABC DEF ” ? “ABC ”-“DEF ”&“ABCDEF ” ? Len(“ABC ”-“DEF ”)&10关系运算符关系运算符一般用于判断指定的条件是否满足 运算对象可以为数值型、字符型、日期型等 运算结果为逻辑型运算符 :是否大于 =:是否等于 =:是否大于等于 、!=、#:是否不等于 =:字符串全等比较,只有两个字符串的各对应元素都相等时,才返回.T.,否则返回.F. $:字符串包含,若右

20、边的字符串中包含左边的字符串,则返回.T.;否则返回.F.关系运算符关系运算符 举例 ? 23返回.F. ? 23返回.T. ? “ABC”=“ABC”返回.T. ? “AB”=“ABC”返回.F. ? “ABC”=“AB”返回.T. ? “ABC”=“ABC”返回.T. ? “ABC”=“AB”返回.F. ? “AB”=“ABC”返回.F. ? “AB”$“ABC”返回.T. ? “AC”$”ABC”返回.F.逻辑运算符逻辑运算符 在多个逻辑值中进行判断,一般用于判断某几个条件是否满足 运算对象和运算结果均为逻辑型 运算符 OR或.OR.:逻辑或,只有两个运算对象均为.F.时,返回.F.;其

21、余均返回.T. AND或.AND.:逻辑与,只有两个运算对象均为.T.时,返回.T.;其余均返回.F. NOT或.NOT.:逻辑非,运算对象为.T.时,返回.F.;运算对象为.F.时,返回.T.ORTFTTTFTFANDTFTTFFFFNOTFTFT表达式 表达式的概念 表达式的运算顺序 表达式分类表达式的概念 用运算符将常量、变量、函数等连接起来的式子 单个的常量、变量、函数等是表达式的特例 表达式必须有确定的值若表达式中包含变量,该变量必须赋值 运算符同级:从左到右 运算符不同级表达式的运算顺序 括号运算或算术运算乘方乘、除、取模加、减关系运算所有关系运算同级逻辑运算非与表达式分类 按表达

22、式值的类型分: 数值表达式 字符表达式 关系表达式 逻辑表达式 日期表达式表达式举例 ? (SQRT(32*2)/4+6)*5-20 ? (SQRT(32*2)/4+6)*5-2030 ? “cd”$ “abc”+”def” ? Date()=2002-3-8 A=5 b=4 c=6 ? ab and ac ? Ab and a+bc标准函数标准函数 函数的概念 函数的三要素:函数名、参数、函数值 如ABS(-2) 函数的分类按返回值分:按返回值分:数值型字符型日期型逻辑型按功能分:按功能分: 字符处理函数 数学运算函数 转换函数 日期函数 测试函数 环境函数 键处理函数 数组函数 窗口函数

23、菜单函数 其他函数字符处理函数字符处理函数 格式:SUBSTR(,) 功能:返回的子串, 说明: 表示子串在源字符串中的起始位置 子串包含的字符个数,若缺省,表示到源字符串末尾举例A=“This is a book.”? SUBSTR(a,1,4) &返回This?SUBSTR(“I am a student”,7) &返回student字符处理函数字符处理函数 格式:LEFT(,) 功能:返回中左边个字符 举例: A=“This is a book.” ? LEFT(a,4)&返回This格式:RIGHT(,)功能:返回中右边个字符举例RIGHT(“I am a st

24、udent”,7)&返回student使用子串函数时,注意源串前后的空格。使用子串函数时,注意源串前后的空格。字符处理函数字符处理函数 格式:AT(,) 功能:返回在中第n次 出现的位置 说明: 若未找到,返回0 若省略n表示,相当于n=1 举例 ? AT(“cd”,”cdabcd”)&返回1 ? AT(“cd”,”cdabcd”,2)&返回5 ? AT(“ad”,”cdabcd”)&返回0字符处理函数字符处理函数 格式:LOWER() 功能:将变为小写 格式:UPPER() 功能:将变为大写例:?Lower(“abCDFg”) 显示“abcdfg” ?upper(“abCDFg”) 显示“ABCDFG”字符处理函数字符处理函数 格式:SPACE() 功能:返回个空格组成的字符串 格式:LTRIM() 功能:删除字符表达式值前的空格 格式:RTRIM(或TRIM() 功能:删除字符表达

温馨提示

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

评论

0/150

提交评论