290 likes | 424 Views
第二章 Visual FoxPro 语言基础知识. 2.1 数据类型 进行数据操作时必须遵守的原则:类型匹配. 可采用专门函数实现数据类型之间转换. 数据类型决定了数据的存储方式和使用方式. 字符型 C -character: 描述不具备计算能力的文字的数据类型. 1.由汉字和 ASCII 字符集中可打印的字符组成. 2.字符型数据的长度:字符型数据所含有字符的个数. 3.长度:0-254,汉字占用两个字节. 4.使用时须要用定界符号 “ ” 或者 ‘’ 或者 [] . 5.可进行连接、比较操作.
E N D
第二章 Visual FoxPro 语言基础知识
2.1 数据类型 • 进行数据操作时必须遵守的原则:类型匹配. • 可采用专门函数实现数据类型之间转换. • 数据类型决定了数据的存储方式和使用方式. • 字符型C-character: 描述不具备计算能力的文字的数据类型. • 1.由汉字和ASCII字符集中可打印的字符组成. • 2.字符型数据的长度:字符型数据所含有字符的个数. • 3.长度:0-254,汉字占用两个字节. • 4.使用时须要用定界符号“”或者‘’或者 []. • 5.可进行连接、比较操作.
数值型N-number: 描述数量的数据类型. 1.数值型:0-9,小数点,"+"和"-"构成. 最大长度20位(包括"+","-",".") 可进行十进制算术运算. 须定义数据长度和小数位数,小数点本身算一位. 2.浮点型:与数值型数据完全相等. 存储格式采用浮点格式,使计算机具有较高精度. • 3.双精度型:只用于表中字段的定义. • 4.整型:不包括小数点,只用于表中字段的定义.
日期型D-date: 长度为8.年月日每项占用两位. 可进行比较操作. • 日期时间型D-date time: • 逻辑型L-logic: 真假 (.T.,.F.)长度为1. 只能进行逻辑运算(布尔运算). • 货币型C-Curency: 占8个字节,小数点4位,超过自动四舍五入.
备注型M-memo: 存储较长的字符型数据. 无长度限制,受磁盘限制. 只用于表中字段的定义,固定长度为4. 实际数据存储与与数据表同名的备注文件之中. 数据库中只存储信息块指针. • 通用型G-general: 存储OLE对象(图像、声音、文档). 无长度限制,受磁盘限制. 只用于表中字段的定义,固定长度为4.
2.2 数据存储 数据一般存储在常量、变量和数组中,在Visual Foxpro中也可以存储在字段、记录和对象中。 供数据存储的常量、变量、数组、字段、记录和对象被称为数据存储容器。 数据的存储容器不同决定了数据的类型和使用方式不同,限定了数据的使用范围.
2.2.1 常量 • 在命令或程序中可以直接引用的实际值. • 特征:所有操作中值不变. • 类型包括: 1.数值型:由数字0-9、小数点和正负号组成: –123.45 789 +32765.45 2.浮点型:浮点存储格式 -123e+12(-123×1012) 3645e-89(3645×10-89) 注意:阿拉伯数字表示的值的定义原则-凡需要进行算术运算的定义为数值型,否则定义为字符型.
3.字符型:用定界符“”或‘’或[]括起来. 如果一种定界符已经作为常量,采用另外一种定界符. "沈阳" "Visual Foxpro" "说'真'话" 4.逻辑型:真假值 .t. or .T., .f. or .F. 注意:两边的小数点不能缺. 5.日期型:{^2002/03/23} 定界符:大括号{} 6.时间日期型:{^2002/03/25 12:34:56 a}
日期型常量定义标准格式: {^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 功能:按月/日/年格式显示日期.
思考题 da={^2002-09-08} Set cent on Set date usa ?da Set date amer ?da Set cent off Set date ansi ?da 09-08-2002 09/08/2002 02.09.08
2.2.2 变量 • 变量的命名规则:由汉字、字母、数字和下划线组成,必须以汉字、字母或下划线开头. • 长度小于128字符. • 不能使用vfp保留字.
内存变量 • 每一个内存变量必须有一个固定名称,来标识内存单元的位置.用户可以通过变量标识符来向内存单元存取数据. • 内存变量是临时单元,用来保留中间结果和最后结果. • 在退出VFP之后,内存变量随系统一起消失(除非用内存变量文件夹保存). • 类型取决于首次接受的数据的类型. • 类型包括:数值型、浮点型、字符型、逻辑型、日期型和时间日期型
赋值 格式:Store <表达式> to 内存变量列表 * 可同时对多个变量赋值 <内存变量> = <表达式> 功能:定义内存变量的同事确定内存变量的值和类型. 说明: (1)表达式可以是一个具体的值也可以是表达式. (2)可以通过对内存变量重新赋值来改变其值和类型.
输出 格式:? <表达式>,?? <表达式> 功能:计算<表达式>的值并在屏幕上显示出来. 说明:? <表达式>在输出前先执行一次回车,再输出. ?? <表达式>在光标所在位置出输出表达式.
显示或打印内存变量 格式:list|display memory[like<通配符>] [to printer|to file<文件名>] 功能:显示或打印内存变量的当前信息. • 释放内存单元 格式:clear memory release<内存变量名表> release all[like<通配符>|except<通配符>] 功能:释放所有内存变量或指定的内存变量.
2.2.3 字段: • 数据库-表-字段-记录 • 字段变量:数据表中已定义的任一字段. • 类型:支持vf得所有数据类型. 记录 • 记录:数据表中一组数据项的集合(行). • 对象 • 数据存储器的一种,是类的实体,是任何具有属性和方法的信息的集合. • 建立对象:Create Object ()
2.2.4 数组: • 数组:一组有序的内存变量的集合,用下标来区分. 通过数组名和下标名来访问. • 定义:数组在使用前必须先定义 DIMENSION A(12) DECLARE B(5) 定义一维数组Class[5],二维数组A[2,3]. • 赋值:Store 1 to A(1) Store 1 to A
内存变量和数组的作用域 • 全局变量 Public 在全部程序过程和自定义函数中有效且程序结束也不释放. 释放命令:release、clear all、clear memory 先定义后赋值,全局变量可定义为局部变量,反之不可. • 局部变量 Private 定义它的程序及其子程序中有效. • 本地变量 Local 只在定义它的程序中有效.
2.3 表达式 • 构成:数据、数据存储容器和运算符. 2.3.1 数值表达式 • 构成:运算符和数值型常量、变量、数组、字段、函数. • 结果:数值型常数. • 运算符级别: ( ) ** * / % + -
2.3.2 字符表达式 • 构成:运算符和字符型常量、变量、数组、字段、函数. • 结果:字符型常数或逻辑型常数. • +联接:将+两边的字符串完全联接. 例: "计算机 " + "软件" "计算机 软件" • -联接:将-前边的字符串尾部的空格去掉后联接. 例: "计算机 " - "软件" "计算机软件 " • $ 比较:查看一个字符串是否在另一个字符串中. 例:"计算机"$"计算机软件" .T.
2.3.3 日期表达式 • 日期运算符+:给已有日期加天数. • 日期运算符-:给已有日期减天数. • 时间日期运算符+:给已有时间日期加秒数. • 时间日期运算符-:给已有时间日期减秒数. 例:{^2002/10/10}+10 = {^2002/10/20} {^2002/10/15}-{^2002/10/10}=5
2.3.4 关系表达式: • 构成:关系运算符、字符表达式、算术表达式、时间日期表达式 • 运算符:<,>,>=,<=,<>(#,!=),== • 结果:逻辑常量. • 注意:关系运算符两边为相同类型. • 例子: 3*5<10 为.F.
2.3.5 逻辑表达式构成:逻辑运算符、常量、内存变量、数组、 函数、关系表达式优先级:( ) .NOT. .OR. .AND. 结果:.T. or .F. 例子:.NOT. 3*5<10 为.T. 1+1=2 .AND. 2+2=3 为 .F.
2.4 系统函数 数值计算函数 注:x可以是数值型常量、数值型变量、数值型函数和算术表达式
消息函数 Messagebox(<字符型数据1>[,数值]<,字符型数据2>) 返回值及其含义:1 – 确定、2 – 取消、3 – 终止、4 – 重试 5 – 忽略、6 – 是、7 – 否