第二章 Visual FoxPro 语言基础知识

29
第第第 Visual FoxPro 第第第第第第

description

第二章 Visual FoxPro 语言基础知识. 2.1 数据类型 进行数据操作时必须遵守的原则:类型匹配. 可采用专门函数实现数据类型之间转换. 数据类型决定了数据的存储方式和使用方式. 字符型 C -character: 描述不具备计算能力的文字的数据类型. 1.由汉字和 ASCII 字符集中可打印的字符组成. 2.字符型数据的长度:字符型数据所含有字符的个数. 3.长度:0-254,汉字占用两个字节. 4.使用时须要用定界符号 “ ” 或者 ‘’ 或者 [] . 5.可进行连接、比较操作. - PowerPoint PPT Presentation

Transcript of 第二章 Visual FoxPro 语言基础知识

Page 1: 第二章  Visual FoxPro  语言基础知识

第二章 Visual FoxPro 语言基础知识

Page 2: 第二章  Visual FoxPro  语言基础知识

2.1 数据类型 进行数据操作时必须遵守的原则:类型匹配 . 可采用专门函数实现数据类型之间转换 . 数据类型决定了数据的存储方式和使用方式 . 字符型 C-character:

描述不具备计算能力的文字的数据类型 . 1. 由汉字和 ASCII字符集中可打印的字符组成 . 2. 字符型数据的长度:字符型数据所含有字符的个数 . 3. 长度: 0- 254, 汉字占用两个字节 . 4. 使用时须要用定界符号“ ”或者‘’或者 []. 5. 可进行连接、比较操作 .

Page 3: 第二章  Visual FoxPro  语言基础知识

数值型 N-number:

描述数量的数据类型 . 1. 数值型: 0- 9, 小数点 ,"+" 和 "-" 构成 . 最大长度 20 位(包括 "+","-","." ) 可进行十进制算术运算 . 须定义数据长度和小数位数,小数点本身算一位 . 2. 浮点型:与数值型数据完全相等 . 存储格式采用浮点格式,使计算机具有较高精度 . 3. 双精度型 :只用于表中字段的定义 . 4. 整型 :不包括小数点 ,只用于表中字段的定义 .

Page 4: 第二章  Visual FoxPro  语言基础知识

日期型 D-date:

长度为 8.年月日每项占用两位 . 可进行比较操作 . 日期时间型 D-date time: 逻辑型 L-logic :

真假 ( .T.,.F.)长度为 1. 只能进行逻辑运算(布尔运算) . 货币型 C-Curency:

占 8个字节,小数点 4位,超过自动四舍五入 .

Page 5: 第二章  Visual FoxPro  语言基础知识

备注型 M-memo:

存储较长的字符型数据 . 无长度限制 ,受磁盘限制 . 只用于表中字段的定义 ,固定长度为 4. 实际数据存储与与数据表同名的备注文件之中 . 数据库中只存储信息块指针 . 通用型 G-general:

存储 OLE对象(图像、声音、文档) . 无长度限制,受磁盘限制 . 只用于表中字段的定义,固定长度为 4.

Page 6: 第二章  Visual FoxPro  语言基础知识

2.2 数据存储 数据一般存储在常量、变量和数组中 , 在

Visual Foxpro中也可以存储在字段、记录和对象中。 供数据存储的常量、变量、数组、字段、记录和对象被称为数据存储容器。 数据的存储容器不同决定了数据的类型和使用方式不同,限定了数据的使用范围 .

Page 7: 第二章  Visual FoxPro  语言基础知识

2.2.1 常量 在命令或程序中可以直接引用的实际值 . 特征:所有操作中值不变 . 类型包括: 1. 数值型:由数字 0- 9、小数点和正负号组成 : –123.45 789 +32765.45

2.浮点型:浮点存储格式 - 123e+12(-123×1012) 3645e-89(3645×10 -

89)

注意 :阿拉伯数字表示的值的定义原则 -凡需要进行算术运算的定义为数值型,否则定义为字符型 .

Page 8: 第二章  Visual FoxPro  语言基础知识

3.字符型:用定界符“ ”或‘’或 []括起来 . 如果一种定界符已经作为常量 ,采用另外一种定界符 . " 沈阳 " "Visual Foxpro" "说 '真 '话 "4.逻辑型:真假值 .t. or .T., .f. or .F.

注意:两边的小数点不能缺 .5.日期型: {^2002/03/23} 定界符:大括号 {}6. 时间日期型: {^2002/03/25 12:34:56 a}

Page 9: 第二章  Visual FoxPro  语言基础知识

日期型常量定义标准格式:{^yyyy/mm/dd hh:mm:ss a|p}对时间的设置形式(例):Set century on/off

功能:显示 4位 /2 位年份 .Set date to **或 Set date **

例: Set date ansi

功能:按年 .月 .日格式显示日期 . Set date amer

功能 :按月 /日 /年格式显示日期 .

Page 10: 第二章  Visual FoxPro  语言基础知识

da={^2002-09-08}

Set cent on

Set date usa

?da

Set date amer

?da

Set cent off

Set date ansi

?da

思考题

09-08-200209/08/2002

02.09.08

Page 11: 第二章  Visual FoxPro  语言基础知识

2.2.2 变量 变量的命名规则:由汉字、字母、数字和下划线组成,必须以汉字、字母或下划线开头 .长度小于 128 字符 .不能使用 vfp保留字 .

Page 12: 第二章  Visual FoxPro  语言基础知识

内存变量 每一个内存变量必须有一个固定名称,来标识内存单元的位置 .用户可以通过变量标识符来向内存单元存取数据 . 内存变量是临时单元,用来保留中间结果和最后结果 . 在退出 VFP之后,内存变量随系统一起消失(除非用内存变量文件夹保存) . 类型取决于首次接受的数据的类型 . 类型包括:数值型、浮点型、字符型、逻辑型、日期型和时间日期型

Page 13: 第二章  Visual FoxPro  语言基础知识

赋值格式: Store <表达式 > to 内存变量列表 * 可同时对多个变量赋值 < 内存变量 > = <表达式 >

功能:定义内存变量的同事确定内存变量的值和类型 .说明:( 1)表达式可以是一个具体的值也可以是表达式 .( 2)可以通过对内存变量重新赋值来改变其值和类型 .

Page 14: 第二章  Visual FoxPro  语言基础知识

输出格式: ? <表达式 > , ?? <表达式 >

功能:计算 <表达式 > 的值并在屏幕上显示出来 .说明: ? <表达式 > 在输出前先执行一次回车,再输出 . ?? <表达式 > 在光标所在位置出输出表达式 .

Page 15: 第二章  Visual FoxPro  语言基础知识

显示或打印内存变量格式: list|display memory[like<通配符 >] [to printer|to file<文件名 >] 功能:显示或打印内存变量的当前信息 . 释放内存单元格式: clear memory

release<内存变量名表 > release all[like<通配符 >|except<通配符 >]功能:释放所有内存变量或指定的内存变量 .

Page 16: 第二章  Visual FoxPro  语言基础知识

2.2.3 字段 : 数据库-表-字段-记录 字段变量:数据表中已定义的任一字段 . 类型:支持 vf得所有数据类型 .记录 记录:数据表中一组数据项的集合(行) .对象 数据存储器的一种,是类的实体,是任何具有属性和方法的信息的集合 .建立对象: Create Object ()

Page 17: 第二章  Visual FoxPro  语言基础知识

2.2.4 数组: 数组 :一组有序的内存变量的集合,用下标来区分 . 通过数组名和下标名来访问 . 定义:数组在使用前必须先定义

DIMENSION A(12) DECLARE B(5)

定义一维数组 Class[5],二维数组 A[2,3]. 赋值: Store 1 to A(1) Store 1 to A

Page 18: 第二章  Visual FoxPro  语言基础知识

内存变量和数组的作用域 全局变量 Public 在全部程序过程和自定义函数中有效且程序结束也不释放 . 释放命令: release 、 clear all 、 clear memory

先定义后赋值,全局变量可定义为局部变量,反之不可 . 局部变量 Private 定义它的程序及其子程序中有效 . 本地变量 Local 只在定义它的程序中有效 .

Page 19: 第二章  Visual FoxPro  语言基础知识

2.3 表达式 构成:数据、数据存储容器和运算符 .

2.3.1 数值表达式 构成:运算符和数值型常量、变量、数组、字段、函数 . 结果:数值型常数 . 运算符级别: ( ) ** * / % + -

Page 20: 第二章  Visual FoxPro  语言基础知识

2.3.2 字符表达式 构成:运算符和字符型常量、变量、数组、字段、函数 . 结果:字符型常数或逻辑型常数 . +联接:将+两边的字符串完全联接 . 例: "计算机 " + "软件 " " 计算机 软件 " -联接:将-前边的字符串尾部的空格去掉后联接 . 例: "计算机 " - "软件 " " 计算机软件 " $ 比较:查看一个字符串是否在另一个字符串中 . 例: "计算机 "$" 计算机软件 " .T.

Page 21: 第二章  Visual FoxPro  语言基础知识

2.3.3 日期表达式 日期运算符+:给已有日期加天数 . 日期运算符-:给已有日期减天数 . 时间日期运算符+:给已有时间日期加秒数 . 时间日期运算符-:给已有时间日期减秒数 . 例: {^2002/10/10}+10 = {^2002/10/20} {^2002/10/15}-{^2002/10/10}=5

Page 22: 第二章  Visual FoxPro  语言基础知识

2.3.4 关系表达式: 构成:关系运算符、字符表达式、算术表达式、时间日期表达式 运算符: <, >, >=, <=, <>(#, !=), == 结果:逻辑常量 . 注意:关系运算符两边为相同类型 . 例子 : 3*5<10 为 .F.

Page 23: 第二章  Visual FoxPro  语言基础知识

2.3.5 逻辑表达式 构成:逻辑运算符、常量、内存变量、数组、 函数、关系表达式 优先级: ( ) .NOT. .OR. .AND. 结果: .T. or .F.

例子: .NOT. 3*5<10 为 .T.

1+1=2 .AND. 2+2=3 为 .F.

Page 24: 第二章  Visual FoxPro  语言基础知识

2.4 系统函数函数 功能

EXP ( x ) 计算并返回 e 指数的值INT ( x ) 计算一个表达式的值,然后返回它的整数部分LOG ( x ) 计算并返回制定数值表达式的自然对数LOG10 ( x)

计算并返回制定数值表达式的常用对数MAX(x1,x2,x3)

计算一组表达式,然后返回其中的最大值MIN(x1,x2,x3)

计算一组表达式的值,然后返回其中的最小值MOD ( x1,x2 )

将两个数值表达式相除,然后返回它们的余数ROUND(x1,x2)

返回数值表达式中按 x2的位数进行四舍五入的数值SIGN ( x ) 根据制定表达式的值返回正负号SQRT ( x ) 计算并返回数值表达式的平方根

数值计算函数

注: x 可以是数值型常量、数值型变量、数值型函数和算术表达式

Page 25: 第二章  Visual FoxPro  语言基础知识

函数 功能ALLTRIM ( <a>) 删除字符表达式首尾两端空格LEFT ( <a>,<b>) 从字符串左边字符开始返回指定数量的字符LEN ( <a>) 返回字符串表达式中字符个数LIKE ( <a1>,<a2>)

确定字符表达式 1是否等于字符表达式 2的内容LOWER ( <a>) 把指定的字符表达式的字母变成小写LTRIM ( <a>) 删除指定字符表达式的前导空白RIGHT ( <a>,<b>) 从字符串右边字符开始返回指定数量的字符RTRIM ( <a>) 删除字符表达式中尾随的空格SPACE ( <b>) 返回由制定个数的空格字符组成的字符串SUBSTR(<a>,<b1>,<b2>)

字符串中从数值 1开始截取数值表达式 2个字符TRIM ( <a>) 删除指定字符表达式中的尾部空格UPPER ( <a>) 把指定的字符表达式的字母变成大写

字符处理函数

Page 26: 第二章  Visual FoxPro  语言基础知识

函数 功能CTOD ( < 字符表达式 >) 将字符表达式转换成日期常量DTOC ( < 日期表达式 >) 从日期表达式转换成字符串STR ( < 数值表达式 1>,<数值表达式 2>,<数值表达式 3>)

将指定的数值表达式 1,按数值表达式2指定的长度以及数值表达式 3指定的小数位数转换成相应的字符串TTOC ( < 日期时间表达式>) 将日期时间表达式转换为指定的字符串TTOD ( < 日期时间表达式>) 将日期时间表达式转换成一个日期常量VAL ( < 字符表达式 >) 将字符表达式转换成一个数值常量

数据转换函数

Page 27: 第二章  Visual FoxPro  语言基础知识

函数 功能DATE () 返回当前的系统日期DATETIME () 返回当前的日期和时间DOW(日期时间表达式 ) 从日期时间表达式返回星期几的数值常量MINUTE(日期时间表达式 )

返回日期时间表达式的分钟值MONTH(日期时间表达式 )

返回日期时间表达式的月份值SEC(日期时间表达式)

返回日期时间表达式的秒数TIME () 返回当前系统时间WEEK(日期时间表达式 )

从日期时间表达式返回表示一年中的第几个星期YEAR(日期时间表达式 )

从指定的日期时间表达式中返回年份

日期时间函数

Page 28: 第二章  Visual FoxPro  语言基础知识

函数 功能BOF () 测试记录指针是否在表首,返回逻辑值EOF () 测试记录指针是否在表尾,返回逻辑值RECNO () 返回当前指针的记录号RECOUNT () 返回指定表中的记录的总数FOUND () 测试在表中找到的数据,返回逻辑值TYPE(<字符表达式>)

测试字符表达式中的数据类型返回值: C,N,Y,D,T,L,M,G,O,U

测试函数

Page 29: 第二章  Visual FoxPro  语言基础知识

数 1 按钮 数 2 图标 数 3 焦点0 0 0 第一个按钮1 16 256 第二个按钮2 32 512 第三个按钮3 484 645

消息函数Messagebox(< 字符型数据 1>[ ,数值 ]< ,字符型数据 2>)

返回值及其含义: 1 – 确定、 2 – 取消、 3 – 终止、 4 – 重试 5 – 忽略、 6 – 是、 7 – 否