《第二章 Visual FoxPro程序设计基础.doc》由会员分享,可在线阅读,更多相关《第二章 Visual FoxPro程序设计基础.doc(52页珍藏版)》请在金锄头文库上搜索。
1、第二章 Visual FoxPro 程序设计基础本章知识点非常零碎,是进行程序设计的必备的基础知识。“不积小流无以成江海,不积跬步无以至千里。”2.1 常量与变量VFP重要的作用就是对数据进行高效的处理。在VFP中从数据存储类型分为6种数据类型:字符型,数值型,货币型,日期型,日期时间型,逻辑型。从数据形式划分数据有常量、变量、函数、表达式等。数据类型:(在数据结构中)是一类值的集合以及在这个值集合上的一组操作。是数据的基本属性。为什么要有数据类型?如果不同的数据在计算机中的存储所需空间一样的话,将会导致计算机内存的浪费。为了不浪费计算机的内存空间而指定数据类型。2.1.1 常量常量:又称字面
2、量,表示一个具体的不变的值。(就是在程序执行中其值不变的量) VFP中有6种类型的常量。变量:就是它的值可以改变的量(不确定的值)。实际上它是计算机内存中随机开辟的一块(能重复利用的)存储空间。可以把它理解成一个容器。变量可为两大类,一类为内存变量,另一类为字段变量(表的字段名)。为什么要有变量?如果没有变量(内存公共能重复利用的存储区域)那么每一个数据都要用专门的存储空间来存储,数据量大了就会用相当大的内存甚至导致计算机死机现象。1数值型常量(常数) N (numeric) 8个字节表示, 最大长度为20字节(1)整数由数字组成,如0,-2, 3。(2)实数 1)十进制表示形式,它由数字正负
3、、小数点组成。如 0.23,-3.14等。2)用指数表示形式,它是数字小数点与E或e组成。如1.23x103 可表示为1.23E3,如-1.23x10-2可表示为-1.23e-2。E前要有数字,E后要有整数。2货币型常量 Y 系统固定8个字节 保留4位小数,四舍五入用$、数字、小数点组成。如$123.456789。?$123.456789结果为:123.4568 注意:货币型常量不能用科学记数法表示。说明:问号 ? 是VF中的命令显示符,用于在VF主窗口中显示用户在命令窗口中输入的数据结果。3字符型常量 C 长度范围是0-254个字符它是用半角的(英文状态)定界符:方括号、单引号、双引号”括起
4、来的一系列的有效字符,也称为字符串。注意:定界符一定要成对匹配使用。VF中用到的所有的标点符号都是英文状态下的(半角),中英文之间切换用快捷键 CTR + 空格在存储时一个汉字占2个字节,一个字母、数字或标点符号占1个字节。(1)计算机在输出字符型常量时不显示定界符。如:?”中国” 输出结果:中国?abc 输出结果:abc?123 输出结果:123 (2)若字符串中含有定界符,那么外面的定界符一定要与字符中的定界符不一样。如:?”学生爱好计算机” 输出结果:学生爱好计算机(3)空串:不包含任何字符的字符串。?len(“”) 输出结果:0空格字符串:包含空格的字符串。?len(“ ”) 输出结果
5、:1“a”认为是字符串a 认为是变量(4)只要加上“漂亮的外衣” ,数据所代表的意义就发生了变化。 ?“123” 输出结果:123?“123+456” 输出结果:123+456?123+456 输出结果:579(5)要输出多个数据项时中间用逗号隔开,输出的结果用空格隔开。?“计算机”,123,数据,ABX “abc” 输出结果:计算机 123 数据 ABX “abc”(6) ? 不换行输出(两个?之间不能有空格)姓名,地址,学号,电话号码都能定义成字符型变量。4日期型常量 D 长度固定8个字节 定界符:内分年月日三部分,中间可以用斜杠(/),连字符(-) ,句点(.),空格中的任何一个进行分割
6、。取值范围:0001年1月1日-9999年12月31日两种输入书写格式:(1) 严格的日期格式 形式为 yyyy-mm-dd,如2011-04-22。 说明:第一个字符必须是脱字符(键盘上的6号键);年份必须是4位;年月日次序不能颠倒,不能省略。 这种格式任何情况下都能用。 错误格式:11/04/22 11/04/22(2) 传统的日期格式传统的日期格式只能在set strictdate to 0 状态下使用Set strictdate to 0?11/04/22 ? 11/04/22如果执行 set strictdate to 1或 set strictdate to 2再执行: ? 11/
7、04/22则系统报错(3) 影响日期格式的设置命令1) Set mark to “用户分隔符” 注意:双引号必不可少。 功能:用于指定显示日期值 时所用的分隔符。如:set mark to “ , ”?2011/04/22 输出:04,22,11 或者?2011,04,22 输出:04,22,11 说明:当指定分隔符后,输入时可以使用也可以不使用,但是输出时一定是所设置的分隔符。 2) set mark to 功能:恢复系统默认的斜杠分隔符。 3)set date to MDY | DMY | YMD 功能:设置日期显示的格式为 月日年 | 日月年 | 年月日 Set date to dmy
8、? 2011-04-22 输出结果:22/04/11 4) Set century on 功能:用4位数字显示年份。 例如:set century on ?2011-04-20 输出结果:04/20/2011 Set century off 功能:用2位数字显示年份。系统默认的设置。 例如:set century off ?2011-04-20 输出结果:04/20/11 Set century to 世纪值 rollover 年份参照值 功能:决定如何解释一个用2位数字年份表示的日期所处的世纪。如果该日期的2位数字=“年份参照值”,则它所处的世纪即为“世纪值”;否则为“世纪值”+1。 例如:
9、set date to YMD Set century on Set century to 19 rollover 10 Set mark to “.” ?CTOD(“49-10-01”) 输出结果:1949.10.01 例:set date to YMD Set century on Set century to 19 rollover 50 Set mark to “.” ?CTOD(“49-10-01”) 输出结果:2049.10.01 5)set strictdate to 0 不进行严格的日期格式检查。 Set strictdate to 1 进行严格的日期格式检查,系统默认设置。
10、Set strictdate to 2 进行严格的日期格式检查,并对CTOD()和CTOT()函数格式有效。5日期时间型常量 T长度固定8个字节日期时间型常量可以同时表示日期和时间。日期部分同日期型常量,时间部分hh:mm:ss AM | PM 代表时分秒 AM表示上午,PM表示下午。时分秒默认值12、0、0 不指定A或P 则默认为A形式为yyyy-mm-dd hh:mm:ss am | pm,如2011-04-22 2:30:33 pm 表示2011年4月22日下午2点30分33秒。例如:set mark to ?2011-04-22,11:30 p, 1999-01-01, 2000-10
11、-1,3 输出结果:04/22/11 11:30:00 PM 01/01/99 12:00:00 AM 10/01/00 03:00:00 AM6逻辑型常量 L 长度固定1个字节它是由真与假组成,真可用.T.、.t.、.Y.、.y.表示,假可用.F.、.f.、.N.、.n.表示。注意:字符前后的两个句点不可省略,否则系统会认为是变量。?T 输出结果:系统找不到变量T? .T. 输出结果: .T.2.1.2 变量变量:就是它的值可以改变的量(不确定的值)。实际上它是计算机内存中随机开辟的一块(能重复利用的)存储空间。可以把它理解成一个容器。每一个变量都有一个变量名,变量名代表或指向内存空间地址。
12、 a - 为什么要有变量?如果没有变量(内存公共能重复利用的存储区域)那么每一个数据都要用专门的存储空间来存储,数据量大了就会用相当大的内存甚至导致计算机死机现象。变量可为两大类,一类为内存变量,另一类为字段变量(表的字段名)。内存变量有N、C、Y、D、T、L六种类型。VFP规定内存变量的类型可以改变,即同一变量可以赋予不同的值。特别说明:当内存变量与字段变量重名时,在访问内存变量时,VFP规定在内存变量名前加M-或加M. ,否则系统默认是访问字段变量(表中的字段名)。例如:use 选课课程号=你好?课程号?m.课程号输出:001 你好 变量三要素:变量名 ,变量的值 , 变量的类型变量的命名
13、规则:(1)由字母、数字、汉字、下划线组成。(2)不能以数字开头,只能以字母、汉字、下划线开头。(3)避免使用VFP保留字。合法的变量:XYZ, 年龄,A2不合法的变量:2X ,a-b 对变量操作的原则:破坏性的读入,非破坏性的读出。对变量的说明:在VF中,同一个变量可接收不同类型的数据。1简单内存变量VFP的简单变量的定义用赋值命令。(1)赋值命令格式1:变量=表达式格式2:STORE 表达式 TO 变量1,变量2,变量3,-功能:格式1将表达式的值赋给变量。格式2只能将一个表达式的值赋给变量表中的所有变量。例: x=2 Y=2Store 2 to x,y 写成 store 2,2 to x,y 是