VisualFoxPro的语言基础
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Visual FoxPro 程序设计
6
10、备注型(M型) 该类型用于数据块的存储,可以存放多种信息,可以是字符 文本、源程序代码等数据,宽度固定为4个字节。字段内容 并不存储在记录中,而是存放在系统为每个含有备注型字段 的表自动建立的一个和表同名的备注文件(后缀为.FPT)中, 记录中仅存储指向备注文件中相应内容的指针。 例如:在学生档案表中可以将“简历”字段设置为备注类型。 该类型不能用内存变量存储。
Visual FoxPro 程序设计
3
3、 浮点型(F型) 该类型以浮点数的形式存储数值数据,用较精确的位数存储 数据,常用于科学计算,其宽度的规定和数值型相同。 4、 双精度型(B型) 该类型用于取代一般的数值类型,以便能提供更高的数值精 度。它只用于表中字段的定义,采用固定存储长度的浮点数 形式,常用于科学计算,存储精度比数值型高,可精确到小 数点后15位,存储占8个字节。该类型数据不能用内存变量 存储。双精度类型不同于数值类型,其小数点位置由输入的 数据值决定。 5、 整数型(I型) 该类型用于无小数部分数值的存取,即存放整数。只用于表 中字段的定义,存储用二进制形式表示,占4个字节。 例如:x = 567 ,y = -123
Visual FoxPro 程序设计
5
8、 日期时间型(T型) 该类型用于存储日期和时间值,存储格式为 “{月/日/年 时:分:秒 AM或PM}”。其日期部分显示格式受 SET DATE,SET MARK,SET CENTURY命令设置值的 影响,取值为{1/1/100}~{12/31/9999};时间部分的显示格 式受SET HOURS和SET SECONDS命令设置的控制,取值 为00:00:00 A.M. ~11:59:59 P.M.。 例如: {09/05/07 10:10:50 AM} 9、 逻辑型(L型) 该类型用于存储只有两个值即真(.T.)和假(.F.)的数据, 其长度固定为1个字节。输入T(t)或Y(y)表示真值;输入F(f) 或N(n)表示假值。 例如:在教师档案表中“婚否”字段位逻辑型字段,可用 “真”表示已婚,而用“假”表示未婚。
Visual FoxPro 程序设计
7
11、 通用型(G型) 该类型用于存储OLE对象,其中包含对OLE对象的引用。一 个OLE对象的具体内容可以是一个电子表格或一个字处理器 的文档、图片、声音等。这些OLE对象是用其它应用程序建 立的,该字段类型的长度固定为4个字节。 与备注型字段一样,通用型字段数据也存入与表文件名相同 而扩展名为“.FPT”的文件中,而通用型用4个字节存储一个 指针,该指针指向存储在.FPT文件中的实际内容。该类型也 不能用内存变量存储。
Visual FoxPro 程序设计
14
图 2-2 设置日期型常量的输出格式
Visual FoxPro 程序设计
15
5、 日期时间型 日期时间常量(T):既含日期又含时间,日期值包括年、 月、日,时间值包括时、分、秒,其中时分秒的分隔符为冒 号(:)。它的书写方式近似于日期型,例如{^2002/01/15 10:00 p}。空值表示为{-, :}、{-,::}、{--,:}和{--,::}。日期和时 间数据之间必须有空格。 6、 货币型 货币型常量(Y):用符号“$”来标识,如$123.3。 * 定义常量名 在VFP的程序设计中,可以使用# DEFINE预处理器命令为 某个常量值命名。例如,在程序中令PI作为圆周率 3.1415926536的一个常量名的定义方法如下所示。 例2.3 : # DEFINE PI 3.1415926536
命令 Set date to american Set date to dmy Set date to mdy 命令指定格式 mm/dd/yy dd/mm/yy mm/dd/yy
Set date to long
Set date to short
yyyy年mm月dd日
yyyy-mm-dd
上表中的各个命令效果见图2-2
Visual FoxPro 程序设计
19
(2) 字段变量与内存变量的比较 两者最大的区别是:字段变量是表结构的一部分,因此离不 开表。要使用字段变量,必须首先打开包含该字段的表。而 内存变量与表无关,不打开表照样可以使用。 内存变量和字段变量可以同名,此时,将优先存取字段变量, 屏蔽同名的内存变量。若要明确指定访问内存变量,则应在 内存变量名前加上指别符M. 或者M->(由减号加大于号组 成),即M.<内存变量名>或M-><内存变量名>。例如:内 存变量name和表的字段名name同时使用,这是内存变量就 要M->name或者。而字段就可以字节使用name。
Visual FoxPro 程序设计
11
日期型常量要放在一对花括号中,开始位置上再加上一个 “^”符号(VFP中采用严格的日期格式,即 {^yyyy/mm/dd})。 例如:以下是合法的日期型常量 {^2007/09/01}、{^2007- 09-01}、{^2007.09.01} 空值表示为{}、{ }、{/}、{:}。 其显示格式系统原来默认的方式是{ MM/DD/YY},但可以 改变输出格式,其命令如下所示。 设置日期型常量的输出格式命令是: SET MARK TO 日期分隔符 &&日期分隔符只限一个字符 【例2.1】将日期型常量的输出分隔符为“;”。 在命令窗口中依次输入以下命令:
Visual FoxPro 程序设计
4
6、 货币型(Y型) 使用金钱时可使用货币数据类型以代替数值类型,其存储空 间占8个字节,只保留4位小数,超过4位将四舍五入到4位。 例如:y = $1000.52 7、 日期型(D型) 该类型用于存储日期数据,其存储格式为“{月/日/年}”,日 期型字段的宽度是固定,占8个字节,其中年、月、日各占2 个字节。 显示格式有许多种,常用的为“MM/DD/YY”,它受SET DATE、SET MARK、SET CENTURY命令设置值的影响。 取值{^0001/1/1}~{^9999/12/31}。 例如:{09/05/07}
Visual FoxPro 程序设计
16
2.2.2 变量
变量是指在程序运行过程中其值可能发生变化的量。变量是 程序的基本单元,在VFP中,变量分为字段变量、用户内存 变量和系统变量。用户内存变量又称内存变量。前两种是用 户根据需要定义的,它是由字母、汉字、数字和下划线组成, 但是必须以字母、汉字开头,变量名长度可以在1~254个字 符之间;而系统变量名称由系统规定。 1. 字段变量 字段变量是在数据库中定义的变量,是数据库表文件结构中 的数据项,每个字段名就是一个字段变量。字段变量是永久 变量,它是一种多值变量,数据表中的每一条记录对应某一 字段都有一个取值。当用字段名作变量时,它的当前值就是 表的当前记录的值。
第2章 Visual FoxPro基础知识
2.1 Visual FoxPro的数据基础(熟悉) 2.2 常量和变量(了解和掌握) 2.3 运算符与表达式(掌握)
2.4 常用函数(掌握)
本章小节
Visual FoxPro 程序设计
1
2.1 VFP的数据类型
数据有型和值之分,型是数据的分类,值是数据的具体表 示。在实际工作中所采集到的原始数据,通常要经过加工 处理,变成对用户有用的信息。而数据处理的基本要求是 对相同类型的数据进行选择归类。为了适应存储数据的需 要,VFP提供了许多数据类型,常用的数据类型有11种。 1、字符型(C型) 该类型由字母、汉字、数字、空格、符号和标点等组成, 通常用来存储姓名、单位、地址等信息,宽度由用户定义, 范围为1~254个字节。 例如:x = “安徽理工大学” 课程名 = “Visual FoxPro 程序设计”
Visual FoxPro 程序设计
9
2、 字符型 字符型常量(C):是用定界符括起来的字符串。定界符有 3种,即单引号、双引号和方括号。在定义和使用字符型常 量时必须注意: 在字符串的两端必须加上定界符,字符串。否则系统会把该 字符串当成变量名。如“姓名”是一个变量名,而“″姓名 ″”是一个常量 定界符只能是ASCII码字符(即半角字符),不能是全角字 符。即在输入时要用英文半角输入法。 左、右定界符必须匹配。即如果左边是双引号,那么右边也 必须是双引号。 定界符可以嵌套,但同一种定界符不能互相嵌套,具体例子 如下所示。
Visual FoxPro 程序设计
18
(1) 内存变量名 内存变量名可由字母、汉字、数字或下划线组成。给变量命 名,应力求做到“见名知义”。建议: 变量的第一个字符标识该变量的数据类型,一般采用小写的 类型标识字母,如“nVar1”应解释为N型的变量,这样做除 了意义明了之外,还可避免使用系统已使用的单词和变量 (注:系统内存变量名的第一个字符是下划线); 变量名的其余字符标识该变量的含义,如由变量名“cName” 可知它是C型变量,内容是某个人的姓名。
Visual FoxPro 程序设计
17
2. 内存变量 内存变量是用户通过命令或程序临时定义的变量,表示一块 工作单元,它独立于表文件结构之外而存在于内存中的变量, 用于存储数据处理过程中所需要的常量、中间结果等数据。 它具有字符型、数值型、日期型、时间型、逻辑型和货币型 等多种数据类型。 VFP的内存变量与其它高级语言中的变量有所不同,它不需 要事先说明其类型,其数据类型是根据当前所存储的数据的 类型决定的。必须首先给所使用的内存变量赋一个值,这个 变量才可以使用,否则,系统会提示:内存变量没有找到!
ห้องสมุดไป่ตู้
Visual FoxPro 程序设计
8
2.2 常量与变量 2.2.1 常量
常量是指在程序运行过程中其值不发生变化的量。FoxPro 支持字符、数值、日期、日期时间、货币和逻辑6种类型的 常量。 1、 数值型常量 数值型常量(N):是可以带正负号的整数或小数(正号可省 略),还可以用科学记数法表示,如2.5E+15。这样表示的 常量是N型,而不是F型。 例如:以下是合法的数字型常量。 80、-523.6、+569852.52
Visual FoxPro 程序设计
2
2、数值型(N型) 该类型用于表示数量,它由数字0~9、一个符号 (+或-)和一个小数点(.)组成。数据类型在内存 中用8个字节表示,在数据表中长度为1~20个字节。 该数据表示范围为-0.999 999 999 9E+19~+0.999 999 999 9E+20。小数点的位置和字段的宽度由用户创 建该字段时指定,宽度包含小数点和小数位数。数 据还可以分为整数、实数和浮点数等。 例如: num1 = -.3568 num2 = 5.3651
Visual FoxPro 程序设计
10
例如:合法字符串:[古语云:″天下没有不散的宴席″] 非法字符串: ″古语云:"天下没有不散的宴席″ ″ 合法:“ABDE”、[王三]、’HAPPY’、‘他说: “好”’ 3、 逻辑型 逻辑型常量(L):也称布尔型常量。它只有两种值,即逻 辑真值或逻辑假值。逻辑真可以用.T.或.Y.表示,也可以用.t. 或.y.来表示;逻辑假可以用.F.,.N.,.f.,.n.来表示。 注意: 字母T,N等的两端必须紧靠小圆点(圆点与字母之 间不能有空格),圆点和字母都必须是半角符号,不能是全 角字符。 4、 日期型 日期型常量(D):一定要包括年、月、日3个值,每两个值 之间由一个分隔符(如斜杠“/”)隔开。
Visual FoxPro 程序设计
12
clear set mark to ";" d={^2007/09/05} ?d
图2-1 将日期型常量的输出分隔符改为“;” Visual FoxPro 程序设计
13
设置日期型常量的输出格式的命令是: set date to maerican|mdy|dmy|long|short… 【例2.2】设置日期型常量的指定格式的示例。
6
10、备注型(M型) 该类型用于数据块的存储,可以存放多种信息,可以是字符 文本、源程序代码等数据,宽度固定为4个字节。字段内容 并不存储在记录中,而是存放在系统为每个含有备注型字段 的表自动建立的一个和表同名的备注文件(后缀为.FPT)中, 记录中仅存储指向备注文件中相应内容的指针。 例如:在学生档案表中可以将“简历”字段设置为备注类型。 该类型不能用内存变量存储。
Visual FoxPro 程序设计
3
3、 浮点型(F型) 该类型以浮点数的形式存储数值数据,用较精确的位数存储 数据,常用于科学计算,其宽度的规定和数值型相同。 4、 双精度型(B型) 该类型用于取代一般的数值类型,以便能提供更高的数值精 度。它只用于表中字段的定义,采用固定存储长度的浮点数 形式,常用于科学计算,存储精度比数值型高,可精确到小 数点后15位,存储占8个字节。该类型数据不能用内存变量 存储。双精度类型不同于数值类型,其小数点位置由输入的 数据值决定。 5、 整数型(I型) 该类型用于无小数部分数值的存取,即存放整数。只用于表 中字段的定义,存储用二进制形式表示,占4个字节。 例如:x = 567 ,y = -123
Visual FoxPro 程序设计
5
8、 日期时间型(T型) 该类型用于存储日期和时间值,存储格式为 “{月/日/年 时:分:秒 AM或PM}”。其日期部分显示格式受 SET DATE,SET MARK,SET CENTURY命令设置值的 影响,取值为{1/1/100}~{12/31/9999};时间部分的显示格 式受SET HOURS和SET SECONDS命令设置的控制,取值 为00:00:00 A.M. ~11:59:59 P.M.。 例如: {09/05/07 10:10:50 AM} 9、 逻辑型(L型) 该类型用于存储只有两个值即真(.T.)和假(.F.)的数据, 其长度固定为1个字节。输入T(t)或Y(y)表示真值;输入F(f) 或N(n)表示假值。 例如:在教师档案表中“婚否”字段位逻辑型字段,可用 “真”表示已婚,而用“假”表示未婚。
Visual FoxPro 程序设计
7
11、 通用型(G型) 该类型用于存储OLE对象,其中包含对OLE对象的引用。一 个OLE对象的具体内容可以是一个电子表格或一个字处理器 的文档、图片、声音等。这些OLE对象是用其它应用程序建 立的,该字段类型的长度固定为4个字节。 与备注型字段一样,通用型字段数据也存入与表文件名相同 而扩展名为“.FPT”的文件中,而通用型用4个字节存储一个 指针,该指针指向存储在.FPT文件中的实际内容。该类型也 不能用内存变量存储。
Visual FoxPro 程序设计
14
图 2-2 设置日期型常量的输出格式
Visual FoxPro 程序设计
15
5、 日期时间型 日期时间常量(T):既含日期又含时间,日期值包括年、 月、日,时间值包括时、分、秒,其中时分秒的分隔符为冒 号(:)。它的书写方式近似于日期型,例如{^2002/01/15 10:00 p}。空值表示为{-, :}、{-,::}、{--,:}和{--,::}。日期和时 间数据之间必须有空格。 6、 货币型 货币型常量(Y):用符号“$”来标识,如$123.3。 * 定义常量名 在VFP的程序设计中,可以使用# DEFINE预处理器命令为 某个常量值命名。例如,在程序中令PI作为圆周率 3.1415926536的一个常量名的定义方法如下所示。 例2.3 : # DEFINE PI 3.1415926536
命令 Set date to american Set date to dmy Set date to mdy 命令指定格式 mm/dd/yy dd/mm/yy mm/dd/yy
Set date to long
Set date to short
yyyy年mm月dd日
yyyy-mm-dd
上表中的各个命令效果见图2-2
Visual FoxPro 程序设计
19
(2) 字段变量与内存变量的比较 两者最大的区别是:字段变量是表结构的一部分,因此离不 开表。要使用字段变量,必须首先打开包含该字段的表。而 内存变量与表无关,不打开表照样可以使用。 内存变量和字段变量可以同名,此时,将优先存取字段变量, 屏蔽同名的内存变量。若要明确指定访问内存变量,则应在 内存变量名前加上指别符M. 或者M->(由减号加大于号组 成),即M.<内存变量名>或M-><内存变量名>。例如:内 存变量name和表的字段名name同时使用,这是内存变量就 要M->name或者。而字段就可以字节使用name。
Visual FoxPro 程序设计
11
日期型常量要放在一对花括号中,开始位置上再加上一个 “^”符号(VFP中采用严格的日期格式,即 {^yyyy/mm/dd})。 例如:以下是合法的日期型常量 {^2007/09/01}、{^2007- 09-01}、{^2007.09.01} 空值表示为{}、{ }、{/}、{:}。 其显示格式系统原来默认的方式是{ MM/DD/YY},但可以 改变输出格式,其命令如下所示。 设置日期型常量的输出格式命令是: SET MARK TO 日期分隔符 &&日期分隔符只限一个字符 【例2.1】将日期型常量的输出分隔符为“;”。 在命令窗口中依次输入以下命令:
Visual FoxPro 程序设计
4
6、 货币型(Y型) 使用金钱时可使用货币数据类型以代替数值类型,其存储空 间占8个字节,只保留4位小数,超过4位将四舍五入到4位。 例如:y = $1000.52 7、 日期型(D型) 该类型用于存储日期数据,其存储格式为“{月/日/年}”,日 期型字段的宽度是固定,占8个字节,其中年、月、日各占2 个字节。 显示格式有许多种,常用的为“MM/DD/YY”,它受SET DATE、SET MARK、SET CENTURY命令设置值的影响。 取值{^0001/1/1}~{^9999/12/31}。 例如:{09/05/07}
Visual FoxPro 程序设计
16
2.2.2 变量
变量是指在程序运行过程中其值可能发生变化的量。变量是 程序的基本单元,在VFP中,变量分为字段变量、用户内存 变量和系统变量。用户内存变量又称内存变量。前两种是用 户根据需要定义的,它是由字母、汉字、数字和下划线组成, 但是必须以字母、汉字开头,变量名长度可以在1~254个字 符之间;而系统变量名称由系统规定。 1. 字段变量 字段变量是在数据库中定义的变量,是数据库表文件结构中 的数据项,每个字段名就是一个字段变量。字段变量是永久 变量,它是一种多值变量,数据表中的每一条记录对应某一 字段都有一个取值。当用字段名作变量时,它的当前值就是 表的当前记录的值。
第2章 Visual FoxPro基础知识
2.1 Visual FoxPro的数据基础(熟悉) 2.2 常量和变量(了解和掌握) 2.3 运算符与表达式(掌握)
2.4 常用函数(掌握)
本章小节
Visual FoxPro 程序设计
1
2.1 VFP的数据类型
数据有型和值之分,型是数据的分类,值是数据的具体表 示。在实际工作中所采集到的原始数据,通常要经过加工 处理,变成对用户有用的信息。而数据处理的基本要求是 对相同类型的数据进行选择归类。为了适应存储数据的需 要,VFP提供了许多数据类型,常用的数据类型有11种。 1、字符型(C型) 该类型由字母、汉字、数字、空格、符号和标点等组成, 通常用来存储姓名、单位、地址等信息,宽度由用户定义, 范围为1~254个字节。 例如:x = “安徽理工大学” 课程名 = “Visual FoxPro 程序设计”
Visual FoxPro 程序设计
9
2、 字符型 字符型常量(C):是用定界符括起来的字符串。定界符有 3种,即单引号、双引号和方括号。在定义和使用字符型常 量时必须注意: 在字符串的两端必须加上定界符,字符串。否则系统会把该 字符串当成变量名。如“姓名”是一个变量名,而“″姓名 ″”是一个常量 定界符只能是ASCII码字符(即半角字符),不能是全角字 符。即在输入时要用英文半角输入法。 左、右定界符必须匹配。即如果左边是双引号,那么右边也 必须是双引号。 定界符可以嵌套,但同一种定界符不能互相嵌套,具体例子 如下所示。
Visual FoxPro 程序设计
18
(1) 内存变量名 内存变量名可由字母、汉字、数字或下划线组成。给变量命 名,应力求做到“见名知义”。建议: 变量的第一个字符标识该变量的数据类型,一般采用小写的 类型标识字母,如“nVar1”应解释为N型的变量,这样做除 了意义明了之外,还可避免使用系统已使用的单词和变量 (注:系统内存变量名的第一个字符是下划线); 变量名的其余字符标识该变量的含义,如由变量名“cName” 可知它是C型变量,内容是某个人的姓名。
Visual FoxPro 程序设计
17
2. 内存变量 内存变量是用户通过命令或程序临时定义的变量,表示一块 工作单元,它独立于表文件结构之外而存在于内存中的变量, 用于存储数据处理过程中所需要的常量、中间结果等数据。 它具有字符型、数值型、日期型、时间型、逻辑型和货币型 等多种数据类型。 VFP的内存变量与其它高级语言中的变量有所不同,它不需 要事先说明其类型,其数据类型是根据当前所存储的数据的 类型决定的。必须首先给所使用的内存变量赋一个值,这个 变量才可以使用,否则,系统会提示:内存变量没有找到!
ห้องสมุดไป่ตู้
Visual FoxPro 程序设计
8
2.2 常量与变量 2.2.1 常量
常量是指在程序运行过程中其值不发生变化的量。FoxPro 支持字符、数值、日期、日期时间、货币和逻辑6种类型的 常量。 1、 数值型常量 数值型常量(N):是可以带正负号的整数或小数(正号可省 略),还可以用科学记数法表示,如2.5E+15。这样表示的 常量是N型,而不是F型。 例如:以下是合法的数字型常量。 80、-523.6、+569852.52
Visual FoxPro 程序设计
2
2、数值型(N型) 该类型用于表示数量,它由数字0~9、一个符号 (+或-)和一个小数点(.)组成。数据类型在内存 中用8个字节表示,在数据表中长度为1~20个字节。 该数据表示范围为-0.999 999 999 9E+19~+0.999 999 999 9E+20。小数点的位置和字段的宽度由用户创 建该字段时指定,宽度包含小数点和小数位数。数 据还可以分为整数、实数和浮点数等。 例如: num1 = -.3568 num2 = 5.3651
Visual FoxPro 程序设计
10
例如:合法字符串:[古语云:″天下没有不散的宴席″] 非法字符串: ″古语云:"天下没有不散的宴席″ ″ 合法:“ABDE”、[王三]、’HAPPY’、‘他说: “好”’ 3、 逻辑型 逻辑型常量(L):也称布尔型常量。它只有两种值,即逻 辑真值或逻辑假值。逻辑真可以用.T.或.Y.表示,也可以用.t. 或.y.来表示;逻辑假可以用.F.,.N.,.f.,.n.来表示。 注意: 字母T,N等的两端必须紧靠小圆点(圆点与字母之 间不能有空格),圆点和字母都必须是半角符号,不能是全 角字符。 4、 日期型 日期型常量(D):一定要包括年、月、日3个值,每两个值 之间由一个分隔符(如斜杠“/”)隔开。
Visual FoxPro 程序设计
12
clear set mark to ";" d={^2007/09/05} ?d
图2-1 将日期型常量的输出分隔符改为“;” Visual FoxPro 程序设计
13
设置日期型常量的输出格式的命令是: set date to maerican|mdy|dmy|long|short… 【例2.2】设置日期型常量的指定格式的示例。