第02章VisualFoxPro编程基础课件

上传人:cl****1 文档编号:569466342 上传时间:2024-07-29 格式:PPT 页数:41 大小:150KB
返回 下载 相关 举报
第02章VisualFoxPro编程基础课件_第1页
第1页 / 共41页
第02章VisualFoxPro编程基础课件_第2页
第2页 / 共41页
第02章VisualFoxPro编程基础课件_第3页
第3页 / 共41页
第02章VisualFoxPro编程基础课件_第4页
第4页 / 共41页
第02章VisualFoxPro编程基础课件_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《第02章VisualFoxPro编程基础课件》由会员分享,可在线阅读,更多相关《第02章VisualFoxPro编程基础课件(41页珍藏版)》请在金锄头文库上搜索。

1、7/29/20241第第 2 章章Visual FoxPro 编程基础编程基础 7/29/20242 数据描述和数据类型数据描述和数据类型 函数函数 运算符和表达式运算符和表达式 Visual FoxPro命令的一般格式命令的一般格式 程序的基本结构程序的基本结构 【教学主要内容教学主要内容】7/29/20243 【教学要求教学要求】 了解:了解:数据描述的基本方法数据描述的基本方法 掌握:掌握:数据类型的定义数据类型的定义 函数的定义和使用函数的定义和使用 运算符和表达式运算符和表达式 Visual FoxPro命令的一般格式命令的一般格式 结构化程序设计结构化程序设计 7/29/20244

2、2.1 数据描述和数据类型数据描述和数据类型 Visual FoxPro 8.0Visual FoxPro 8.0可以对数据进行分类,分别存可以对数据进行分类,分别存储每一类型的数据,同时也可以将不同数据之间的联系储每一类型的数据,同时也可以将不同数据之间的联系存储进来,以获得综合性数据信息。存储进来,以获得综合性数据信息。 Visual Visual FoxProFoxPro中中常常量量、变变量量、函函数数及及表表达达式式的的常常用用数数据据类类型型有有字字符符型型、数数值值型型、逻逻辑辑型型、日日期期型型、日日期期时间型、货币型和变体型等。时间型、货币型和变体型等。 操操作作过过程程中中一

3、一般般只只对对相相同同类类型型的的数数据据进进行行运运算算,在在操作过程中必须时刻注意操作对象的类型。操作过程中必须时刻注意操作对象的类型。7/29/202452.1 数据描述和数据类型数据描述和数据类型 2.1.1 2.1.1 常量常量 在在Visual Visual FoxProFoxPro程程序序中中,操操作作过过程程中中其其值值不不发发生生变变化化的的数数据据项项称称为为常常量,由常量名和常量值组成。量,由常量名和常量值组成。 常量有以下几种数据类型:常量有以下几种数据类型: 1. 1. 字符型字符型 ( (Character)Character) 字字符符型型数数据据通通常常用用来来

4、表表示示文文本本类类型型的的信信息息,每每个个字字符符占占用用一一个个字字节节,最最多可有多可有254254个字符。由中个字符。由中/ /英文字符、数字、空格和各种专用符号组成。英文字符、数字、空格和各种专用符号组成。 2. 2. 数值型数值型 ( (Numeric)Numeric) 数数值值型型数数据据是是用用来来进进行行数数学学运运算算的的整整数数或或分分数数,由由数数字字、小小数数点点和和正正负负号等组成,在内存中占号等组成,在内存中占8 8个字节。例如个字节。例如135135、10 .4710 .47、-101-101、和、和2.172.17E6E6等。等。 3. 3. 逻辑型逻辑型

5、( (Logic) Logic) 逻逻辑辑型型数数据据只只有有“真真”和和“假假”两两个个值值,分分别别用用. .T.T.、 .t.t.、.Y.Y.、.y.y.(逻逻辑辑值值真真)和和. .F.F.、.f.f.、.N.N.、.n.n.(逻逻辑辑值值假假),表表示示逻逻辑辑运运算算的的结结果。果。 7/29/202462.1 数据描述和数据类型数据描述和数据类型 4. 4. 日期型日期型( (Date) Date) 和日期时间型和日期时间型 ( (DateTimeDateTime) ) 日日期期型型数数据据常常用用大大括括号号作作为为定定界界符符。通通常常以以“月月/ /日日/ /年年”的的形形

6、式来表示,如式来表示,如02/01/0602/01/06,占,占8 8个字节。个字节。 系系统统默默认认的的“严严格格日日期期型型格格式式”以以yyyyyyyy-mm-mm-dddd 的的形形式式来来表表示示,格格式式中中的的符符号号 指指该该日日期期是是严严格格的的,表表达达一一个个确确切切的的日日期期,它它不不受受日日期期设设置置命命令令SET SET DATE DATE TOTO和和SET SET CENTURY CENTURY ON/OFFON/OFF的的影影响响。格格式式中中的的“-”“-”可可用用“/”“/”来代替。来代替。 5. 5. 货币型货币型 ( (Currency) Cu

7、rrency) 数数字字前前加加前前置置符符号号$ $表表示示货货币币型型数数据据。如如$121.67$121.67。货货币币型型数数据据不不用用科科学学记记数数法法表表示示,最最多多有有四四位位小小数数,超超过过4 4位位则则Visual Visual FoxProFoxPro自自动动调调整整为为4 4位。货币型数据在内存中占位。货币型数据在内存中占8 8个字节。个字节。7/29/202472.1 数据描述和数据类型数据描述和数据类型 2.1.2 2.1.2 变量变量 在在命命令令操操作作和和程程序序运运行行中中其其值值可可以以发发生生变变化化的的数数据据是是变变量量。在在Visual Vi

8、sual FoxProFoxPro中,变量不需要严格的定义,它通过赋给变量的值来识别变量的类型。中,变量不需要严格的定义,它通过赋给变量的值来识别变量的类型。 Visual FoxPro Visual FoxPro中有两类变量:一是字段变量,另一类是内存变量。中有两类变量:一是字段变量,另一类是内存变量。 1. 1. 字段变量字段变量 字段变量是指数据库表文件中定义好的每一字段,在数据表中的记录都字段变量是指数据库表文件中定义好的每一字段,在数据表中的记录都是字段变量相应的值。是字段变量相应的值。 (1 1)备注型(备注型(MemoMemo)在表中使用,大小为在表中使用,大小为4 4字节。字节

9、。 (2 2)浮点型()浮点型(FloatFloat)与数值型一样,数据为整数或小数,在内存中占与数值型一样,数据为整数或小数,在内存中占8 8个字节,在表中占个字节,在表中占2020个字节。个字节。 (3 3)双精度型()双精度型(DoubleDouble)双精度浮点数大小占双精度浮点数大小占8 8个字节。个字节。 (4 4)通用型()通用型(GeneralGeneral)通用型数据用于存储通用型数据用于存储OLE OLE 对象的数据,在表中对象的数据,在表中占占 4 4 个字节。个字节。 7/29/202482.1 数据描述和数据类型数据描述和数据类型 (5 5)整型(自动增长)()整型(

10、自动增长)(IntegerInteger(AutoIncrementingAutoIncrementing)可以为数据可以为数据库容器表库容器表 ( (DBC) DBC) 或自由表指定自动增长字段值,在表中占个字节。或自由表指定自动增长字段值,在表中占个字节。 字段值的自动增长量由字段值的自动增长量由Next ValueNext Value和和StepStep的值控制。当打开一个字段的的值控制。当打开一个字段的自动增量时,自动增量时, 初始的增量值、初始的增量值、Next Value Next Value 和和 StepStep是保存在表头中的特定是保存在表头中的特定字段的字段子记录的未使用的

11、保留部分。字段的字段子记录的未使用的保留部分。 (6 6)整整型型(IntegerInteger)整整数数字字段段类类型型在在表表中中以以二二进进制制存存储储,且且只只占占用用 4 4 个个字字节节的的空空间间,所所以以,整整数数字字段段类类型型比比其其他他任任意意类类型型所所需需的的内内存存都都少少,而而且且二进制值不需要作二进制值不需要作 ASCII ASCII 转换。转换。 (7 7)字符型)字符型 ( (二进制二进制) ) (CharacterBinaryCharacterBinary) (8 8)备注型备注型 ( (二进制二进制) ) (MemoBinaryMemoBinary) (

12、9 9)变变体体型型(VariantVariant)变变体体型型可可以以包包含含除除固固定定长长度度串串以以外外的的任任意意 Visual Visual FoxPro FoxPro 数数据据类类型型,也也可可是是特特殊殊值值 EmptyEmpty,Error Error 和和 NULLNULL。一一旦旦一一个个值值保保存存在在变变体体中中,变变体体型型的的数数据据类类型型就就是是它它所所包包含含的的值值的的数数据据类类型型,大大小小与相应的类型一致。与相应的类型一致。 7/29/202492.1 数据描述和数据类型数据描述和数据类型 2. 2. 内存变量内存变量 内存变量是内存中的一个存储单元

13、,独立于数据表文件。内存变量是独内存变量是内存中的一个存储单元,独立于数据表文件。内存变量是独立于数据表文件而存在的变量,用来存储数据处理过程中所需要的常数、中立于数据表文件而存在的变量,用来存储数据处理过程中所需要的常数、中间结果和最终结果。间结果和最终结果。 (1) (1) 内内存存变变量量的的赋赋值值 内内存存变变量量是是由由赋赋值值语语句句定定义义的的,给给内内存存变变量量赋赋值值的的常常用用命命令令有有“=”“=”、STORESTORE、INPUTINPUT、WAITWAIT、ACCEPTACCEPT等等。内内存存变变量量的的数数据据类类型型取取决决于于赋赋值值数数据据的的类类型型,

14、共共分分为为六六种种类类型型:即即字字符符型型( (C)C)、数数值值型型( (N)N)、逻逻辑型辑型( (L)L)、日期型日期型( (D)D)、日期时间型日期时间型( (T)T)和货币型和货币型( (Y)Y)。 格式格式1 1: = 功能:定义单个内存变量功能:定义单个内存变量 示例:在命令窗口输入以下命令:示例:在命令窗口输入以下命令: a=” a=”你好你好” b=12.34 b=12.34 格式格式2 2:STORE STORE TO TO 功能:将表达式的值赋给多个内存变量功能:将表达式的值赋给多个内存变量 示例:示例: store 5*6 to a,b,c store 5*6 to

15、 a,b,c 7/29/2024102.1 数据描述和数据类型数据描述和数据类型 (2) (2) 内存变量的显示内存变量的显示 可以通过命令来显示目前已定义过的内存变量。可以通过命令来显示目前已定义过的内存变量。 格式格式1 1: LIST/DISPLAY MEMORYLIKELIST/DISPLAY MEMORYLIKE TO PRINTERPROMPT/TO FILETO PRINTERPROMPT/TO FILE 功功能能:LISTLIST命命令令在在屏屏幕幕上上一一次次显显示示所所有有变变量量;DISPLAYDISPLAY命命令令则则分分屏屏显显示示数数据据,按按任任一一键键显显示示下

16、下一一屏屏;如如果果语语句句中中包包含含 TO TO PRINTPRINT选选项项,则则将将结结果果输输出出到到打印机上。打印机上。 (3) (3) 内存变量的清除内存变量的清除 可用可用RELEASERELEASE命令清除内存变量数据,语法格式如下:命令清除内存变量数据,语法格式如下: 格式:格式:RELEASEALL LIKE/EXCEPTRELEASEALL LIKE/EXCEPT 功功能能:如如果果语语句句中中包包含含 ,则则仅仅清清除除清清单单中中指指定定的的内内存存变变量量;如果语句中包含如果语句中包含ALL LIKE|EXCEPTALL LIKE|EXCEPT ,则按如下条件清除

17、内存变量:,则按如下条件清除内存变量: ALL LIKEALL LIKE :表示把符合结构中所指定条件的所有内存变量清除。:表示把符合结构中所指定条件的所有内存变量清除。 ALL ALL EXCEPTEXCEPT :表表示示把把符符合合结结构构中中所所指指定定条条件件以以外外的的所所有有内内存存变变量清除。量清除。7/29/2024112.1 数据描述和数据类型数据描述和数据类型 3. 3. 数组变量数组变量 数组是由一系列被称为元素的有序数据值构成,可以用序号引用这些元数组是由一系列被称为元素的有序数据值构成,可以用序号引用这些元素,具有相同名称而下标不同。素,具有相同名称而下标不同。 (1

18、) (1) 数组的定义数组的定义 格式:格式: DECLARE/DIMENSION/PUBLIC DECLARE/DIMENSION/PUBLIC1( ,下标下标22) 2( ,2) 功能:定义一维或二维数组。数组的下标从功能:定义一维或二维数组。数组的下标从1 1开始。开始。 (2 2)数组的使用)数组的使用 数组定义后,数组中每个元素就可以像内存变量一样使用。系统设定各数组定义后,数组中每个元素就可以像内存变量一样使用。系统设定各数组元素的初始值为数组元素的初始值为. .F.F.,在执行赋值命令时,系统可以为各元素设定相应在执行赋值命令时,系统可以为各元素设定相应的类型,同一数组的不同元素

19、,数据类型可以不一致。的类型,同一数组的不同元素,数据类型可以不一致。 7/29/2024122.1 数据描述和数据类型数据描述和数据类型 数数组组元元素素的的赋赋值值方方法法与与内内存存变变量量的的赋赋值值方方法法一一样样,常常用用STORESTORE命命令令赋初值。赋初值。 格式:格式: STORE STORE TO TO = 功能:给数组中每个元素赋以相同的值。功能:给数组中每个元素赋以相同的值。 用用SCATTERSCATTER把字段变量的值赋给数组,把字段变量的值赋给数组, 格式:格式: SCATTERFIELDSSCATTERFIELDSTOTO 功功能能:将将当当前前数数据据库库

20、表表文文件件的的当当前前记记录录特特定定字字段段变变量量的的值值赋赋给给一一组组变变量量或数组中。数组变量的类型与字段的类型一致。或数组中。数组变量的类型与字段的类型一致。7/29/2024132.1 数据描述和数据类型数据描述和数据类型 用用COPY TO ARRAYCOPY TO ARRAY将当前选定表中的数据赋给数组。将当前选定表中的数据赋给数组。 格式:格式: COPY TO ARRAY COPY TO ARRAY 功能:指定数组名,将当前选定表中的数据复制到该数组中。功能:指定数组名,将当前选定表中的数据复制到该数组中。 用用GATHERGATHER命令来替换字段变量命令来替换字段变

21、量 格式:格式: GATHER FROMGATHER FROMFIELDSFIELDS LIKE|EXCEPTLIKE|EXCEPTMEMOMEMO 说说明明:用用数数组组元元素素的的值值顺顺序序替替换换当当前前数数据据库库表表文文件件的的当当前前记记录录各各字字段段的的值。值。7/29/2024142.1 数据描述和数据类型数据描述和数据类型 4. 4. 系统变量系统变量 系系统统变变量量是是由由Visual Visual FoxProFoxPro系系统统内内部部提提供供的的。该该系系统统提提供供的的系系统统变变量量很多,部分变量如表很多,部分变量如表2.12.1所示:所示: 表表 2.1

22、2.1 系统变量的类型及应用说明系统变量的类型及应用说明系系 统统 变变 量量 变变 量量 说说 明明_ _SCREEN SCREEN 指定指定 Visual FoxPro Windows Visual FoxPro Windows 主窗口的属性主窗口的属性_ _VFP VFP 指向当前运行的指向当前运行的 Visual FoxPro Visual FoxPro 应用程序对象应用程序对象_ _PAGETOTAL PAGETOTAL 在报表中设置在报表中设置 共共 Y Y 页第页第 X X 页页 页数页数_ _TEXT TEXT 可以把文本合并命令的结果输出到低级文件中可以把文本合并命令的结果输

23、出到低级文件中_ _DIARYDATE DIARYDATE 默认存储当前日期默认存储当前日期_ _SHELL SHELL Visual FoxPro Visual FoxPro 在执行程序时在执行程序时 ,阻止访问命令窗口,阻止访问命令窗口7/29/2024152.1 数据描述和数据类型数据描述和数据类型2.1.3 2.1.3 变量作用域变量作用域 变变量量只只有有在在运运行行应应用用程程序序时时才才会会存存在在。所所谓谓变变量量的的作作用用域域即即某某个个变变量量在在应用程序中的有效作用区间。应用程序中的有效作用区间。 1. 1. 局部变量局部变量 格式:格式:LOCALLOCAL 功能:建

24、立局部变量。功能:建立局部变量。 2. 2. 私有变量私有变量 格式:格式:PRIVATE PRIVATE 功功能能:PRIVATE PRIVATE 并并不不创创建建变变量量,它它只只在在当当前前程程序序中中隐隐藏藏变变量量,这这些些变变量量是在高层程序中声明的。是在高层程序中声明的。 3. 3. 全局变量全局变量 格式:格式:PUBLICPUBLIC 功能:指定一个或多个要初始化为或指定为全局变量的内存变量。功能:指定一个或多个要初始化为或指定为全局变量的内存变量。 7/29/2024162.2 函函 数数 函函数数是是预预先先编编制制的的程程序序模模块块,可可以以实实现现某某项项功功能能或

25、或完完成成某某种种运运算算。Visual FoxProVisual FoxPro的函数有两种:一种是系统的函数,一种是自定义函数。的函数有两种:一种是系统的函数,一种是自定义函数。函数调用的语法格式为:函数调用的语法格式为: 函数名(函数名( 参数列表参数列表 ) 2.2.12.2.1常用函数的使用常用函数的使用 1. 1. 字符函数字符函数 (1 1)求子串函数)求子串函数SUBSTRSUBSTR()、()、LEFTLEFT()、()、RIGHTRIGHT()() (2 2)宏代换函数宏代换函数 (3 3)删除字符串前导空格函数删除字符串前导空格函数LTRIM( )LTRIM( ) (4 4

26、)删除字符串尾部空格函数删除字符串尾部空格函数RTRIM()/TRIM()RTRIM()/TRIM() (5 5)删除字符串前后空格函数删除字符串前后空格函数ALLTRIM( )ALLTRIM( ) (6 6)子串位置检索函数子串位置检索函数ATAT()() (7 7)字符串替换函数字符串替换函数STUFF( ) STUFF( ) (8 8)产生重复字符函数产生重复字符函数REPLICATE()REPLICATE() (9 9)求字符出现次数函数求字符出现次数函数OCCURS()OCCURS()7/29/2024172.2 函函 数数 2. 2. 日期时间函数日期时间函数 (1 1) 时间函数

27、时间函数TIMETIME()() (2 2)日期函数日期函数DATE( )DATE( ) (3 3)年份函数年份函数YEARYEAR()() (4 4)月份函数月份函数MONTH( )MONTH( ) (5 5)日期函数日期函数DAY( )DAY( ) 3. 3. 数值运算函数数值运算函数 (1 1) 取整函数取整函数INTINT()、()、CEILINGCEILING()、()、FLOORFLOOR()() (2 2)取绝对值函数取绝对值函数ABS()ABS() (3 3) 四舍五入函数四舍五入函数ROUND()ROUND() (4 4) 求余数函数求余数函数MODMOD()() (5 5)

28、求最大值函数求最大值函数MAXMAX()() (6 6)求平方根函数求平方根函数SQRTSQRT()() (7 7)求指数函数求指数函数EXPEXP()() (8 8)求对数函数求对数函数LOGLOG()() 7/29/2024182.2 函函 数数 4 4. . 逻辑函数逻辑函数 逻逻辑辑函函数数主主要要用用于于对对表表达达式式进进行行测测试试判判断断,如如果果表表达达式式为为真真时时,则则输输出出结果为结果为. .T.T.为假时,输出结果为为假时,输出结果为. .F.F.。 (1 1)判断表达式是否在上下限之间判断表达式是否在上下限之间BETWEENBETWEEN()() (2 2)判断表

29、达式是否为空判断表达式是否为空EMPTY()EMPTY() (3 3)测试表达式类型测试表达式类型TYPETYPE()() (4 4)快速表达式判断快速表达式判断IIF()IIF() (5 5)判断表达式是否匹配判断表达式是否匹配INLISTINLIST()() 5. 5. 类型转换函数类型转换函数 (1 1)大小写转换函数)大小写转换函数 (2 2)数值型转换成字符型函数数值型转换成字符型函数 (3 3)字符型转换成数值函数字符型转换成数值函数 (4 4)字符转换成日期型函数字符转换成日期型函数 (5 5)日期型转换成字符型函数日期型转换成字符型函数7/29/2024192.2 函函 数数

30、2.2.2 2.2.2 用户自定义函数用户自定义函数 用户自定义函数是由用户建立、可返回值的代码,包括过程和函数等。用户自定义函数是由用户建立、可返回值的代码,包括过程和函数等。 1. 1. 用户自定义过程用户自定义过程 Visual FoxProVisual FoxPro中,过程的语法格式是:中,过程的语法格式是: PROCEDUREPROCEDURE LPARAMETERSLPARAMETERS变量变量11,变量,变量22,. COMMAND COMMAND RETURN RETURN 表达式表达式 ENDPROCENDPROC 2. 2. 用户自定义函数用户自定义函数 函数的基本语法格式

31、如下:函数的基本语法格式如下: FUNCTION FUNCTION LPARAMETERSLPARAMETERS变量变量11,变量,变量22,. COMMAND COMMAND RETURN RETURN 表达式表达式 ENDFUNCENDFUNC7/29/2024202.3 运算符和表达式运算符和表达式 2.3.1 2.3.1 算术运算符和表达式算术运算符和表达式 1. 1. 算术运算符算术运算符 算算术术运运算算符符对对表表达达式式进进行行算算术术运运算算,产产生生数数值值型型、货货币币型型等等结结果果。它它包括以下六种运算符:包括以下六种运算符: + + 加法运算加法运算 - - 减法运

32、算减法运算 * * 乘法运算乘法运算 / / 除法运算除法运算 * * 或或 乘方运算乘方运算 ()优先运算符()优先运算符 2. 2. 运算规则运算规则 表达式的主要运算规则如下:表达式的主要运算规则如下: 各运算符运算的优先顺序与一般的算术规则相同。各运算符运算的优先顺序与一般的算术规则相同。 先先乘乘除除,后后加加减减,乘乘方方优优先先于于乘乘除除,函函数数优优先先于于乘乘方方,圆圆括括号号的的优优先级别最高。先级别最高。 同级运算时,从左至右依次运算。同级运算时,从左至右依次运算。 3. 3. 书写规则书写规则 表达式的主要书写规则如下:表达式的主要书写规则如下: 表达式的字符须写在同

33、一水平线上,每个字符占一格;表达式的字符须写在同一水平线上,每个字符占一格; 表表达达式式中中涉涉及及的的常常量量表表示示、变变量量命命名名以以及及引引用用的的函函数数要要符符合合Visual Visual FoxProFoxPro的规定,以利于程序的识别;的规定,以利于程序的识别; 合理应用各运算符,保证运算顺序的正确性。合理应用各运算符,保证运算顺序的正确性。7/29/2024212.3 运算符和表达式运算符和表达式 2.3.2 2.3.2 字符串运算符和表达式字符串运算符和表达式 字符运算符用来对两个字符型数据进行包含及连接运算。字符运算符用来对两个字符型数据进行包含及连接运算。 (1

34、1) $ $ 包包含含运运算算符符。用用于于表表示示两两个个字字符符串串之之间间的的包包含含与与被被包包含含的的关关系。参与运算的数据只能是字符型的,结果是逻辑值。系。参与运算的数据只能是字符型的,结果是逻辑值。 格式:格式: $2 功功能能:如如果果 1被被包包含含在在 2中中时时其其结结果果为为真真(. .T.T.),否则为假否则为假(.(.F.)F.)。 (2 2) + +字字符符串串连连接接运运算算符符。该该运运算算符符是是完完全全连连接接运运算算符符,用用于于把把两两个或两个以个或两个以上字符串连接成一个新的字符串。上字符串连接成一个新的字符串。 (3 3)压压缩缩空空格格运运算算符

35、符。该该运运算算符符是是不不完完全全连连接接运运算算符符,先先去去掉掉第第一一个个字字符符串串后后部部的的空空格格,再再连连接接两两个个字字符符表表达达式式,并并把把字字符符串串1 1末末尾尾的的空空格格放到新生成字符串的尾部。放到新生成字符串的尾部。 7/29/2024222.3 运算符和表达式运算符和表达式 2.3.3 2.3.3 日期和时间运算符及表达式日期和时间运算符及表达式 日日期期和和时时间间表表达达式式是是指指含含有有日日期期型型或或日日期期时时间间型型数数据据的的表表达达式式,返返回回日日期期时时间间型型常常量量。其其运运算算符符只只有有“+”“+”和和“-”“-”两两种种,共

36、共6 6种种语语法法格格式式。格格式式如如下:下: 格式格式1 1: + + 功能:结果是将来的某个日期。功能:结果是将来的某个日期。 格式格式2 2: - 功能:结果是过去的某个日期。功能:结果是过去的某个日期。 格式格式3 3: -2 功能:结果是两个日期之间相差的天数。功能:结果是两个日期之间相差的天数。 格式格式4 4: + + 功能:结果是若干秒后的某个日期时间。功能:结果是若干秒后的某个日期时间。 格式格式5 5: - 功能:结果是若干秒前的某个日期时间。功能:结果是若干秒前的某个日期时间。 格式格式6 6: -2 功能:结果是两个日期之间相差的秒数。功能:结果是两个日期之间相差的

37、秒数。7/29/2024232.3 运算符和表达式运算符和表达式 2.3.4 2.3.4 逻辑运算符和表达式逻辑运算符和表达式 逻逻辑辑运运算算符符对对一一个个或或两两个个逻逻辑辑型型表表达达式式进进行行逻逻辑辑运运算算,返返回回逻逻辑辑型常量。它包括四种运算符:型常量。它包括四种运算符: . .AND.AND.逻辑与逻辑与 . .OR.OR.逻辑或()逻辑或() 括号括号 . .NOT.NOT.逻辑非逻辑非 !逻辑非!逻辑非 运算规则:运算规则: 括号最优先,其次逻辑非优于逻辑与,逻辑与优于逻辑或;括号最优先,其次逻辑非优于逻辑与,逻辑与优于逻辑或; 逻逻辑辑运运算算符符和和算算术术运运算算

38、符符一一样样都都可可以以使使用用括括号号来来改改变变操操作作运运算算的的先后顺序先后顺序 逻逻辑辑表表达达式式实实际际上上是是一一种种判判断断条条件件,条条件件成成立立则则表表达达式式值值为为 . .T. T. ;条件不成立则表达式值为条件不成立则表达式值为 . .F.F.。 .NOT. .NOT. 对运算的逻辑表达式取相反值;对运算的逻辑表达式取相反值; . .OR. OR. 连连接接的的两两个个逻逻辑辑表表达达式式的的值值只只要要有有一一个个为为. . .,结结果果就就为为. . .,只有两个值都为,只有两个值都为. .F.F.,结果才为结果才为. . .; . .AND.AND.则要两个

39、逻辑值同时正时结果才为则要两个逻辑值同时正时结果才为. .T.T.,否则为否则为. .F.F.。 7/29/2024242.4 VFP命令的一般格式2.4.1 2.4.1 命令的一般格式命令的一般格式 命命令令通通常常由由两两部部分分组组成成:第第一一部部分分是是命命令令动动词词,表表示示应应该该执执行行的的操操作作;第第二二部部分分是是若若干干短短语语,对对操操作作提提供供某某些些限限制制性性的的说说明明。下下面面列列出出Visual Visual FoxProFoxPro操作命令的一般语法格式:操作命令的一般语法格式: 命命令令动动词词FORFORWHILEWHILETO TO FILEF

40、ILE/TO TO PRINTER/TO PRINTER/TO ARRAYARRAY/TOTOALLLIKE/EXCEPTALLLIKE/EXCEPTININ 命令动词是个英文动词,表示这个命令所要完成的操作。命令动词是个英文动词,表示这个命令所要完成的操作。 表示对数据库表文件进行操作的记录范围表示对数据库表文件进行操作的记录范围 表表达达式式可可以以是是一一个个或或多多个个由由逗逗号号分分隔隔开开的的表表达达式式,用用来来表表示示命命令令所所进行操作的结果参数进行操作的结果参数 FORFOR 和和WHILEWHILE 在在FORFOR短短语语和和WHILEWHILE短短语语中中 是是一一个

41、个逻逻辑表达,它的值必须为真辑表达,它的值必须为真(.(.T.)T.)或假或假(.(.F.) F.) 7/29/2024252.4 VFP命令的一般格式2.4.2 2.4.2 命令的书写规则命令的书写规则 (1 1) 任任何何一一条条命命令令必必须须以以命命令令动动词词开开头头。后后面面的的多多个个短短语语通通常常与与顺顺序序无无关关,但但是是必必须须符符合合命命令令格格式式的的规规定定。一一行行只只能能写写一一条条命命令令,以以回回车车表表示示结结束。束。 (2 2)用用空空格格来来分分隔隔每每条条命命令令中中的的各各个个短短语语,如如果果两两个个短短语语之之间间有有其其它它分分界符,则空格

42、可以省略。界符,则空格可以省略。 (3 3) 一一条条命命令令的的最最大大长长度度是是254254个个字字符符。一一行行写写不不下下时时。用用续续行行符符“;”“;”在行末进行分行,并在下行连续书写。在行末进行分行,并在下行连续书写。 (4 4)命令中的英文字母大小写可以混合使用。)命令中的英文字母大小写可以混合使用。 (5 5) 命令动词和子句中的短语可以用其前四个字母缩写表示。命令动词和子句中的短语可以用其前四个字母缩写表示。 (6 6) Microsoft Microsoft Visual Visual FoxPro FoxPro 8.0 8.0 中中的的保保留留字字包包括括函函数数,系

43、系统统内内存存变量,属性,事件,方法,命令,菜单常数和子句。变量,属性,事件,方法,命令,菜单常数和子句。 用用户户在在选选择择变变量量名名、字字段段名名和和文文件件名名时时,应应尽尽可可能能不不使使用用系系统统中中的的命命令令动动词词和和命命令令字字,以以免免程程序序在在运运行行中中产产生生语语法法错错误误。不不能能用用操操作作系系统统所所规规定定的的输输出出设设备备名名作作为为文文件件名名,也也不不能能用用A A到到J J之之间间的的单单个个字字母母作作表表名名,以以免免与与工工作作区名称冲突。区名称冲突。 7/29/2024262.4 VFP命令的一般格式2.4.3 2.4.3 命令的运

44、行方式命令的运行方式 Visual FoxProVisual FoxPro有两种运行方式:命令方式和程序方式。有两种运行方式:命令方式和程序方式。 1. 1. 命令方式命令方式 命令方式即在命令方式即在Visual FoxProVisual FoxPro的命令窗口中键入命令行,按回车键立即的命令窗口中键入命令行,按回车键立即执行,系统的主窗口区马上会显示执行的结果。执行,系统的主窗口区马上会显示执行的结果。 命令方式一般都在命令方式一般都在VFPVFP的命令窗口中进行的。的命令窗口中进行的。 2. 2. 程序方式程序方式 程程序序方方式式先先要要通通过过命命令令MODIFY MODIFY CO

45、MMAND COMMAND 建建立立特特定定的的命命令令文文件件。建建立立时时逐逐行行键键入入命命令令行行,然然后后存存人人磁磁盘盘,由由用用户户指指定定命命令令文文件件名名,系系统默认的扩展名是统默认的扩展名是PRGPRG,然后由然后由DODO命令执行。命令执行。 格式:格式: DO DO 功功能能:这这种种方方式式调调用用程程序序文文件件,系系统统将将自自动动执执行行这这一一文文件件,将将用用户户繁繁琐琐的介入减到最少。程序执行方式运行效率高,可以重复执行。的介入减到最少。程序执行方式运行效率高,可以重复执行。7/29/2024272.4 VFP命令的一般格式2.4.4 2.4.4 赋值命

46、令赋值命令STORESTORE 在在程程序序中中如如果果要要使使用用变变量量,则则必必须须在在使使用用之之前前为为变变量量设设定定一一个个初初始始值值或或改变它的现行值。赋值语句可以将指定的值赋给内存变量或对象的某个属性。改变它的现行值。赋值语句可以将指定的值赋给内存变量或对象的某个属性。 格式:格式:STORE STORE TOTO/ 功功能能: 赋赋值值命命令令STORESTORE的的主主要要是是给给内内存存变变量量赋赋值值,多多个个变变量量名名之之间间通通过过逗号隔开。具体功能如下:逗号隔开。具体功能如下: 建立建立内存内存变量,并给内存变量变量,并给内存变量/ /数组赋初值。数组赋初值

47、。 为已建立的内存变量为已建立的内存变量/ /数组重新赋值。数组重新赋值。STORESTORE会用新值替换旧值。会用新值替换旧值。 给一个变量或数组赋值时,可以用给一个变量或数组赋值时,可以用“=”“=”可以代替可以代替STORESTORE命令,简写为:命令,简写为: / 对对日日期期型型内内存存变变量量赋赋值值时时,如如果果 是是日日期期型型常常量量,则则必必须须用用花花括括号号“”“”括括起起来来并并在在前前面面加加上上一一个个符符号号()(),如如果果 是是字字符符串串,则必须用转换函数将其换为日期型。则必须用转换函数将其换为日期型。示例示例: today=2005/12/06today

48、=2005/12/06 today=CTOD(“12/06/2005”) today=CTOD(“12/06/2005”)7/29/2024282.4 VFP命令的一般格式2.4.5 2.4.5 显示命令显示命令 格式:格式:? ? ? FUNCTION FUNCTION 参数参数FONTFONT字体名字体名 ,字体大小,字体大小 功能:在屏幕上显示表达式的内容。功能:在屏幕上显示表达式的内容。 参数说明:参数说明:? ? 表表达达式式:用用于于对对表表达达式式进进行行计计算算,然然后后新新起起一一行行显显示示计计算算结结果果,计计算算结结果果显显示示在在 Visual Visual FoxP

49、ro FoxPro 主主窗窗口口或或者者活活动动的的用用户户自自定定义义窗窗口的下一行;口的下一行; ? ? 表达式:结果显示在表达式:结果显示在 Visual FoxPro Visual FoxPro 主窗口、活动的用户定义窗主窗口、活动的用户定义窗口或者打印机当前行的当前位置上。不换行而接着当前行直接输出。计算并口或者打印机当前行的当前位置上。不换行而接着当前行直接输出。计算并显示变量、表达式和常量的值显示变量、表达式和常量的值 当?命令后面没有任何表达式时,输出一个空行;当?命令后面没有任何表达式时,输出一个空行; 该该命令命令后可以跟多行参数,有后可以跟多行参数,有PICTUREPIC

50、TURE参数、参数、V V参数、参数、ATAT参数、参数、FONTFONT参参数、数、 STYLESTYLE参数参数等。等。 7/29/2024292.5 程序的结构化设计程序的结构化设计 2.5.12.5.1命令文件的建立和运行命令文件的建立和运行 1. 1. 利用命令语句建立程序利用命令语句建立程序 Visual FoxPro 8.0 Visual FoxPro 8.0程序是包含一系列命令语句的文件,在程序是包含一系列命令语句的文件,在Visual Visual FoxPro 8.0FoxPro 8.0中通过命令窗口建立程序的格式如下:中通过命令窗口建立程序的格式如下: 格式:格式: MO

51、DIFY COMMAND MODIFY COMMAND 2. 2. 运行程序运行程序 Visual FoxPro 8.0 Visual FoxPro 8.0中运行程序可以采用命令方式。中运行程序可以采用命令方式。 格式:格式: DO DO 功能:系统将执行扩展名为功能:系统将执行扩展名为. .FXPFXP或或. .PRGPRG的程序。的程序。 3. 3. 打开程序打开程序 当程序已经建立好后,有时还需要打开程序对某些功能进行调试和修改,当程序已经建立好后,有时还需要打开程序对某些功能进行调试和修改,打开程序的命令方式。打开程序的命令方式。 格式:格式:MODIFY COMMANDMODIFY

52、COMMAND 功能:在命令窗口中输入该命令。功能:在命令窗口中输入该命令。 7/29/2024302.5 程序的结构化设计程序的结构化设计 2.5.22.5.2顺序结构程序设计顺序结构程序设计 顺序结构是顺序结构是Visual FoxProVisual FoxPro程序中最常用的基本结构,也是最简单的程序中最常用的基本结构,也是最简单的一种程序结构。顺序结构程序在运行时,会完全按照语句排列的顺序依一种程序结构。顺序结构程序在运行时,会完全按照语句排列的顺序依次执行次执行 1. 1. 注释语句注释语句 为了提高程序的可读性,通常应在程序的适当位置加上一些注释。为了提高程序的可读性,通常应在程序

53、的适当位置加上一些注释。 2. 2. 暂停语句暂停语句 格格式式:WAIT WAIT TOTO WINDOWS WINDOWS ATAT NOWAITCLEARNOCLEARTIMEOUTNOWAITCLEARNOCLEARTIMEOUT 功功能能:WAITWAIT语语句句用用来来显显示示字字符符表表达达式式的的值值作作为为提提示示信信息息,并并暂暂停停程程序的执行,直到按任意键或单击鼠标后继续执行程序。序的执行,直到按任意键或单击鼠标后继续执行程序。 3. 3. 结束语句格式结束语句格式 (1 1)CANCELCANCEL (2 2)RELEASERELEASE7/29/2024312.5

54、程序的结构化设计程序的结构化设计 4. 4. 设置会话状态命令设置会话状态命令 格式:格式: SET TALK OFF/ONSET TALK OFF/ON 功功能能:用用于于设设置置各各条条命命令令的的执执行行结结果果是是否否送送往往屏屏幕幕输输出出。ONON时时表表示示显显示示,OFFOFF时表示不显示。系统默认值是时表示不显示。系统默认值是ONON。 5. 5. 输入输入/ /输出命令输出命令 (1) (1) INPUTINPUT命令命令 格式:格式: INPUT INPUT TO TO 功功能能:显显示示提提示示信信息息,暂暂停停程程序序运运行行,等等待待用用户户从从键键盘盘输输入入数数

55、据据,可可以以输输入入任任意意合合法法的的表表达达式式。当当按按回回车车键键结结束束输输入入时时,系系统统将将表表达达式式的的值值存存入入指指定定的内存变量,程序继续运行。的内存变量,程序继续运行。 (2 2)ACCEPTACCEPT命令命令 格式:格式: ACCEPT ACCEPT TO TO 功功能能:显显示示提提示示信信息息,暂暂停停程程序序运运行行,等等待待用用户户从从键键盘盘输输入入字字符符串串。当当按按回回车车键键结结束束输输入入时时,系系统统将将该该字字符符串串存存入入指指定定的的内内存存变变量量,程程序序继继续续运运行。行。 7/29/2024322.5 程序的结构化设计程序的

56、结构化设计 (3 3)SAYSAY命令命令 格式:格式: SAY SAY FUNCTION FUNCTION PICTUREPICTURE2 SIZESIZEl, 2 FONTFONT3, 3 STYLESTYLE4 COLOR SCHEMECOLOR SCHEME4COLORCOLOR 功能:在指定的行中,按列位置显示输出格式。功能:在指定的行中,按列位置显示输出格式。7/29/2024332.5 程序的结构化设计程序的结构化设计 (4 4)GETGET命令命令 格式:格式: SAYSAYGETGET FUNCTIONFUNCTIONPICTUREPICTURE 2 &描述描述 FUNCTI

57、ON FUNCTION 3, l &字体选择字体选择 STYLESTYLE 4 &字体风格选择字体风格选择 DEFAULTDEFAULT 1 &默认变量或数组默认变量或数组 ENABLE DISABLE ENABLE DISABLE &允许或禁止允许或禁止 MESSAGEMESSAGE 5 &提示信息提示信息 RANGERANGE2, 3 &数据接收的范围数据接收的范围 SIZESIZE2, 3 &编辑区编辑区 VALIDVALID 4 &合法性检查合法性检查 ERRORERROR 6 &VALIDVALID为为F F时显示信息时显示信息 WHENWHEN 2 &决定允许或禁止编辑决定允许或禁

58、止编辑 COLOR SCHEMECOLOR SCHEME4COLORCOLOR &颜色配置颜色配置 功能:在指定位置按指定格式输入。如果在其后跟上功能:在指定位置按指定格式输入。如果在其后跟上READREAD,则表示可则表示可以对以对GETGET命令语句进行编辑修改。命令语句进行编辑修改。 7/29/2024342.5 程序的结构化设计程序的结构化设计 6. 6. 释放命令释放命令 格式格式1 1: CLEARALL/FIELDS/ GETS/MEMORY/PROGRAMCLEARALL/FIELDS/ GETS/MEMORY/PROGRAM /TYPEAHEAD/READ /TYPEAHEA

59、D/READ 功功能能:按按给给定定的的命命令令来来清清除除屏屏幕幕或或系系统统的的状状态态信信息息。没没有有子子句句的的CLEARCLEAR命令将清除整个屏幕,并切断命令将清除整个屏幕,并切断GETGET命令与命令与READREAD命令的联系。命令的联系。2.5.32.5.3选择结构程序设计选择结构程序设计 1. 1. 选择语句选择语句IFENDIFIFENDIF (1 1)简单判断简单判断 格式:格式:IFIF ENDIFENDIF 功功能能:如如果果 成成立立,其其值值为为真真,则则执执行行 中中的的语语句句,然然后后再执行再执行ENDIFENDIF后面的语句;否则直接执行后面的语句;否

60、则直接执行ENDIFENDIF后的语句。后的语句。7/29/2024352.5 程序的结构化设计程序的结构化设计 (2 2)选择判断)选择判断 格式:格式:IF IF l ELSE ELSE 2 ENDIFENDIF 功功能能:如如果果 成成立立,其其值值为为真真,则则执执行行 l中中的的语语句句,然然后后执执行行ENDIFENDIF后后面面的的语语句句;否否则则,执执行行 2中中的的语语句句,然然后后继继续续执执行行ENDIFENDIF后面的语句。后面的语句。 说明:在说明:在IFELSEENDIFIFELSEENDIF命令中可以嵌套命令中可以嵌套IFELSEENDIFIFELSEENDIF

61、命令,一命令,一般嵌套层数不宜过多般嵌套层数不宜过多( (不超过不超过5 5层层) ),嵌套过多会使程序的可读性变得极差,嵌套过多会使程序的可读性变得极差,且程序运行容易出错。且程序运行容易出错。 7/29/2024362.5 程序的结构化设计程序的结构化设计 (3 3)嵌套选择)嵌套选择 在解决许多复杂问题时,需要将多个选择判断语句相互在解决许多复杂问题时,需要将多个选择判断语句相互结合起来使用,形成复杂分支程序结构。在分支语句中,结合起来使用,形成复杂分支程序结构。在分支语句中,IFIF必须和必须和ENDIFENDIF配配对。系统在执行分支语句时,由对。系统在执行分支语句时,由IFIF语句

62、的最内层开始,逐层将语句的最内层开始,逐层将IFIF和和ENDIFENDIF配配对。因此在多层分支嵌套时要特别注意配对关系,以免配对错误引起逻辑错对。因此在多层分支嵌套时要特别注意配对关系,以免配对错误引起逻辑错误。误。 2. 2. 选择语句选择语句DO CASEDO CASE 格式格式:DOCASEDOCASE CASE CASEl 1 CASECASE 2 2 CASECASE N N OTHERWISEJ OTHERWISEJ N+1 ENDCASE ENDCASE7/29/2024372.5 程序的结构化设计程序的结构化设计 功功能能:执执行行多多重重选选择择,在在多多种种可可能能的的

63、分分支支中中选选择择其其中中之之一一的的程程序序语语句句。如如果果某某条条件件成成立立,则则执执行行对对应应的的 。OTHERWISEOTHERWISE表表示示除除去去以以上上多多个个条条件件剩剩下下的的所所有有情情况况, ,也也就就是是说说,当当所所有有 都都不不成成立立时时,若若有有OTHERWISEOTHERWISE项,则执行项,则执行 N+1,否则执行否则执行ENDCASEENDCASE后的语句后的语句 说说明明:在在整整个个DO DO CASEENDCASECASEENDCASE语语句句中中,每每次次最最多多执执行行一一个个命命令令序序列列。在在多多个个 项项都都成成立立时时,系系统

64、统只只能能执执行行位位置置在在最最前前面面的的条条件件项项下下的的命命令令序序列列。同同IFEND IFEND IFIF命命令令一一样样,在在DO DO CASECASE命命令令中中也也可可以以嵌嵌套套DO DO CASECASE命命令令。还还允许与允许与IFIF语句嵌套,但都不允许交叉。语句嵌套,但都不允许交叉。 7/29/2024382.5 程序的结构化设计程序的结构化设计 2.5.42.5.4循环结构程序设计循环结构程序设计 1 1. . 步长型循环步长型循环 如如果果事事先先知知道道循循环环次次数数,则则可可以以使使用用步步长长型型循循环环( (FORENDFOR)FORENDFOR)

65、结结构构。步长型循环可以根据给定的次数重复执行循环体。步长型循环可以根据给定的次数重复执行循环体。 格式:格式: FORFOR= TO TO STEPSTEP EXIT EXIT LOOP LOOP ENDFOR NEXT ENDFOR NEXT 功能:循环的执行过程是开始时首先把功能:循环的执行过程是开始时首先把 、 和和 读入,读入,然后再对然后再对 的值与的值与 进行比较,如果进行比较,如果 的值在的值在 与与 范围内,则执行范围内,则执行FORFOR与与ENDFORENDFOR之间的命令,然后之间的命令,然后 按按 增加或减小,重新比较,直到增加或减小,重新比较,直到 的值不在的值不在

66、 与与 范围范围内,结束循环,转去执行内,结束循环,转去执行ENDFORENDFOR后面的第一条命令。如果在后面的第一条命令。如果在FORENDFORFORENDFOR之之间改变间改变 的值,那么将影响循环执行的次数。如果的值,那么将影响循环执行的次数。如果 的初的初值一开始就超出了终值,则循环体一次也得不到执行。值一开始就超出了终值,则循环体一次也得不到执行。 7/29/2024392.5 程序的结构化设计程序的结构化设计 2. 2. 条件循环条件循环 格式:格式:DO WHILE DO WHILE EXITEXIT LOOP LOOP ENDDO ENDDO 功功能能:如如果果 成成立立,

67、则则执执行行DO DO WHILEWHILE和和ENDDOENDDO之之间间的的循循环环体体;如如果果 不不成成立立,则则结结束束循循环环,转转去去执执行行ENDDOENDDO之之后后的的命命令令。每每执执行行一一遍遍循循环环体体,程序自动返回到程序自动返回到DO WHILEDO WHILE语句判断一次语句判断一次 。7/29/2024402.5 程序的结构化设计程序的结构化设计 3. 3. 扫描型循环扫描型循环 SCANSCAN循循环环是是为为操操作作数数据据库库记记录录设设计计的的循循环环。下下面面假假设设已已经经知知道道数数据据库库的的概念和操作方法。概念和操作方法。 格式格式: SCAN SCAN FORFORWHILEWHILE EXIT EXIT LOOP LOOP ENDSCAN ENDSCAN 功功能能:在在指指定定范范围围内内,扫扫描描满满足足给给定定条条件件的的记记录录,然然后后执执行行相相应应的的命命令令序序列列。如如果果记记录录超超过过指指定定范范围围或或者者该该记记录录不不满满足足WHILEWHILE ,则则结结束束扫扫描描循环,执行循环,执行ENDSCANENDSCAN后面的语句。后面的语句。7/29/202441THE ENDTHE END

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号