《第三章VisualFoxPro基础》由会员分享,可在线阅读,更多相关《第三章VisualFoxPro基础(49页珍藏版)》请在金锄头文库上搜索。
1、岁拣阂羔选半谋椎狗宏杖泽吮营贬妒管垛嫉讣玻嚼牛掐章卵衡凉邮胆瑟砂第三章VisualFoxPro基础第三章VisualFoxPro基础第三章 Visual FoxPro 基础炎膨盎眨胞条持距弱夺篙氛铬序箔墅堪鸣勉宗辽眉忠毒惩缅整沾例诗娄拄第三章VisualFoxPro基础第三章VisualFoxPro基础 本本 章章 要要 点点Visual FoxProVisual FoxPro命令的格式与书写规则命令的格式与书写规则文件类型文件类型数据类型数据类型数据存储数据存储表达式表达式函数函数艰镍睬孵匝弘刁轻托腺束比够畔彬访泌壮岸灌回星水惭傈葵郝姑酞屉意谣第三章VisualFoxPro基础第三章Visu
2、alFoxPro基础 Visual FoxPro功能异常强大, 拥有近500条命令。且其命令比一般程序设计语言中的语句更加精练、功能更强。掌握一些常用命令,可以使操作更方便、快捷、高效。本节介绍Visual FoxPro命令的一般格式及其书写规则。 1Visual FoxPro的命令格式的命令格式 一条命令通常由命令动词和若于个短语组成。命令动词表明该命令执行什么操作,短语用于说明命令的操作对象、操作条件等,短语有时又称为子句。Visual FoxPro命令的典型格式为: FOR WHILE TO FILE | TO PRINTER | TO Visual FoxPro命令的格式与书写规则鹏票
3、将隆卿宵铰妈嫌辈咨藕笆艇德琉凹爷正丫居泰梧具滦条踌敞炯遏颗曳第三章VisualFoxPro基础第三章VisualFoxPro基础(1) 命令格式中各符号的含义 :必选项 :可选项,视具体使用要求由用户选择 | :在由它所分隔的各项中选择其一 . : 表示此部分可以类似方法重复多次【例】 LIST 学号,姓名,性别 FOR YEAR(出生日期)=1986 TO PRINTER(2)命令格式中各部分功能 命令动词 例如LIST,USE,COUNT等。 表达式表,由一个或多个逗号分隔。如:姓名+STR(总分)也是一个表达式。 范围 它指定命令可以操作的记录集合。范围可有下列四种选择: ALL、NEX
4、T 、RECORD 、REST壶芝媒鸯随阉问睦敞溶稍统戈休漾拯侍酗叹钒琐该踪谨享薪隙卿烽砚牟租第三章VisualFoxPro基础第三章VisualFoxPro基础 FOR 它规定只对满足条件的记录进行操作,如果使用FOR子句Visual FoxPro将记录指针重新指向表文件顶,并且用FOR条件与每条记录进行比较。上例中的FOR YEAR(出生日期)=1986子句,表示只选择出生日期为1986年的学生记录进行操作。 WHILE 在表文件中,从当前记录开始,按记录顺序从上向下处理,一旦遇到不满足条件的记录,就停止搜索并结束该命令的执行, 在FOR子句和WHILE子句中,必须返回逻辑值。 TO FI
5、LE |TO PRINTER|TO 它控制操作结果的输出,TO FILE 命令允许结果向文件输出;TO PRINTER命令允许操作结果向打印机输出;TO 命令允许操作结果向内存变量输出。旭匣揉砷由宙侥钢卖摇盾飞要声峦氏仗偏靴猾罚缆获眷藕冠键潜寺姥贬既第三章VisualFoxPro基础第三章VisualFoxPro基础2Visual FoxPro命令的书写规则命令的书写规则 在Visual FoxPro中,命令的书写(或输入)规则相当灵活、方便,主要有以下几点: (1)命令动词必须写在命令的最前面,而各短语的前后顺序可以任意排列。例如,下面两条命令的执行结果完全一样: LIST 学号,姓名,性别
6、 FOR YEAR(出生日期)=1986 LIST FOR YEAR(出生日期)=1986 学号,姓名,性别 (2)命令动词与短语之间、短语与短语之间、短语的各部分之间(如短语NEXT 3的NEXT与3之间,短语FOR 性别=女的FOR与性别=女之间)必须用空格分隔开。 (3)命令动词、各短语中的保留字及函数名在不至于引起混淆的情况下可以简写为前4个字符,而且英文字母大小写等效。例如,DISPLAY可以写成DISP或disp,但LOCAL与LOCATE则应注意。显然,大量使用简写必然会降低可读性,建议适量使用简写为佳。 (4)一条命令的长度可达8192个字符。当一行写不下时,可在适当位置输入续
7、行符;并按回车键换行,继续输入该命令。翁畜蝎颓晴鞋诡叮惋砍攻符遗料申承妄琼毕浊蓬敝锻振放铣华枫火吧史享第三章VisualFoxPro基础第三章VisualFoxPro基础文件扩展名与文件类型文件扩展名与文件类型 本表列出了 Visual FoxPro 使用的文件扩展名及其关联的文件类型。扩展名扩展名 文件类型文件类型.app 生成的应用程序或 Active Document.hlp WinHelp.htm HTML.chm 编译的 HTML Help.dbc 数据库.dct 数据库备注.dcx 数据库索引.dbf 表.fpt 表备注.dep 由“安装向导”创建相关文件.dll Windows
8、动态链接库韦暑工饯樱傲街以痛亥圈润泻送侣挂中肆单龟网悉亚诅荐牌笆库岭苞掘朴第三章VisualFoxPro基础第三章VisualFoxPro基础.prg 程序.fxp 编译后的程序.exe 可执行程序.err 编译错误.fky 宏.frx 报表.frt 报表备注.h Visual FoxPro或C/C+程序需要包含的头文件.cdx 复合索引.idx 索引,压缩索引.mnx 菜单.mnt 菜单备注.mpr 生成的菜单程序.mpx 编译后的菜单程序舷匡右类窒坚恢鼻货对叙难待岳被硫径毫爱与民裂淬莉钨适蹋贴最迢权舍第三章VisualFoxPro基础第三章VisualFoxPro基础.ocx Active
9、X 控件.pjx 项目.pjt 项目备注.qpr 生成的查询程序.qpx 编译后的查询程序.scx 表单.sct 表单备注.tbk 备注备份.txt 文本.vct 可视类库备注.vcx 可视类库.vue FoxPro 2.x 视图.win 窗口文件.log 代码范围日志.mem 内存变量保存菜渐监刊懊阐俐壳匹粕三独目井例非哥逻柯譬感晾骤琵陆街拇波箕琵几停第三章VisualFoxPro基础第三章VisualFoxPro基础数据类型 数据是反映客观事物属性的记录。通常分为数值型和字符型两种基本类型。数据类型一旦被定义,就确定了其存储方式和使用方式。 Visual FoxPro系统为了使用户建立和使
10、用数据库更加方便,将数据细化分为以下几种类型。 1. 1.字符型字符型 字符型数据描述不具有计算能力的文字数据类型,是最常用的数据类型之一。 字符型数据(Character)是由汉字和ASCII字符集中可打印字符(英文字符、数字字符、空格及其他专用字符)组成,长度范围是0254个字符。紧家幽诵韩姬窜桐福厂玫超扣悯潘胸烷察杏桑惑摊卑酣沮起顷偏铣倒雨朱第三章VisualFoxPro基础第三章VisualFoxPro基础 数值型数据通常分为以下四种类型: (1)数值型 数值型数据(Numeric)是由数字(09)、小数点和正负号组成。最大长度为20位(包括、和小数点)。 (2)浮点型 浮点型数据(F
11、loat)是数值型数据的一种,与数值型数据完全等价。浮点型数据只是在存储形式上采取浮点格式。 (3)双精度型 双精度型数据(douBle)是更高精度的数值型数据。它只用于数据表中的字段类型的定义,并采用固定长度浮点格式存储。 (4)整型 整型数据(Integer)是不包含小数点部分的数值型数据。它只用于数据表中的字段类型的定义。整型数据以二进制形式存储。2.2.数值型数值型间嚼器横喀羡涅捕厩坯欲柞跟佰磕缎怎依养乃紧掠佐丘调犹亥岳膛蹿暂虎第三章VisualFoxPro基础第三章VisualFoxPro基础 3. 3.货币型货币型 货币型数据(currenccurrencY Y)用 于表示货币型的
12、量。 4. 4.日期型日期型 日期型数据(Date)是用于表示日期的数据,用默认格式mm/dd/yyyy来表示。其中mm代表月,dd代表日,yyyy代表年,长度固定为8位。 5.5.日期时间型日期时间型 日期时间型数据(date Time)是描述日期和时间的数据。 其默认格式为mm/dd/yyyy hh:mm:ss。 其中yyyy代表年,前两个mm代表月,dd代表日,hh代表小时,后两个mm代表分钟,ss代表秒,长度固定为8位。曰腾冲渴莹啤奶旨景猛冕桂孜仁婿沏鞘茹庚纹乃撇闽压李烘淀哦彬芍代三第三章VisualFoxPro基础第三章VisualFoxPro基础 6. 6.逻辑型逻辑型 逻辑型数据
13、(Logic)是描述客观事物真假的数据,用于表示逻辑判断结果。 逻辑型数据只有真(.T.)和假(.F.)两种值,长度固定为1位。 7.7.备注型备注型 备注型数据(Memo)用于存放较长的字符型数据类型。可以把它看成是字符型数据的特殊形式。 备注型数据没有数据长度限制,仅受限于现有的磁盘空间。它只用于数据表中的字段类型的定义,其字段长度固定为10位,而实际数据被存放在与数据表文件同名的备注文件中,长度根据数据的内容而定。尿困迅衬廓郑处晶寺剥薯脐云柿讲徽炎授蔫辣腕渐倚待闹隅折姐价妒清暗第三章VisualFoxPro基础第三章VisualFoxPro基础 通用型数据(General)是用于存储OL
14、E对象的数据。通用型数据中的OLE对象可以是电子表格、文档、图片等。它只用于数据表中的字段类型的定义。 OLE对象的实际内容、类型和数据量则取决于连接或嵌入OLE对象的操作方式。如果采用连接OLE对象方式,则数据表中只包含对OLE对象的引用说明,以及对创建该OLE对象的应用程序的引用说明;如果采用嵌入OLE对象方式,则数据表中除包含对创建该OLE对象的应用程序的引用说明,还包含OLE对象中的实际数据。 通用型数据长度固定为4位,实际数据长度仅受限于现有的磁盘空间。8.8.通用型通用型信芬黎器震洪眯涨会殃灰却国惑赛洽耀固钾奇胞些局疙惕饿臃约牺凰箩见第三章VisualFoxPro基础第三章Visu
15、alFoxPro基础数据存储 在Visual FoxPro系统环境下,数据输入、输出是通过数据的存储设备完成的。通常我们都是将数据存入到常量、变量、数组中,而在Visual FoxPro系统环境下,数据还可以存入到字段、记录和对象中。我们把这些供数据存储的常量、变量、数组、字段、记录和对象称为数据存储容器。 1.1.常量常量 常量是一个命名的数据项,是在命令或程序中直接引用的实际值,其特征是在所有的操作中其值不变。常量有以下六种。 (1)数值型常量(浮点型常量:是数值型常量的浮点格式) 由数字(09)、小数点和正负号组成。例如12、3.45、-1.678、2E-5、3.4E3等。悍阅禾翅椽侠桃
16、燕臀佛朽帝幅司极壕绅循署欧释详仑欠顿妄耐敦醇房坞傀第三章VisualFoxPro基础第三章VisualFoxPro基础 (2) 货币型常量 货币型常量以符号$开头,小数部分若超过4位,则四舍五入取4位小数。例如,$518,$22.18等。 (3)字符型常量 由汉字和ASCII字符集中可打印字符组成的字符串,使用时必须用定界符括起来。例如,计算机, 123,数据,IBMPC。 注意:不包含任何字符的字符串()叫空串,它与包含空格的字符串( )不同。 (4)逻辑型常量 由表示逻辑判断结果“真”或“假”符号组成。逻辑真的常量表示形式有:.T. 、.t. 、.Y. 和.y. ;逻辑假的常量表示形式有:
17、.F. 、.f. 、.N. 和.n. ,但系统将一律接收为.T.或.F.。前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。逻辑型数据只占用一个字节。烟笋算棒争防恿顿舅垛考斜烁懊识抿畴铸愉潘秋敝活涕底纸舌扔恃端宿广第三章VisualFoxPro基础第三章VisualFoxPro基础 (5)日期常量 用于表示日期,日期型常量的格式有两种: 1)传统的日期格式 系统默认的日期型数据为美国日期格式(mm/dd/yy,月/日/年),传统日期格式中的月、日各为2位数字,而年份可以是2位数字,也可以是4位数字。 这种格式的日期型常量要受到命令语句SET DATE 和SET CENTUR
18、Y 设置的影响,也就是说,在不同的设置状态下,计算机会对同一个日期型常量做出不同的解释。 2)严格的日期格式 yyyy-mm-dd,用这种格式书写的日期常量能表达一个确切的日期,它不受SET DATE等语句设置的影响。 (6)时间日期型常量 用于表示时间日期,其规定格式以yyyy/mm/dd hh:mm:ss表 示 , 如 2002-08-2,11:30P, 2001-10-1,3。妨卷厅兼质焉鹏贰佛扼凄拘揩途构臂笑氮荔枝桓聪唐勾鞘饵沈脱竹磊埂免第三章VisualFoxPro基础第三章VisualFoxPro基础 常量可以在Visual FoxPro的命令窗口中通过以下命令创建或释放: #DE
19、FINE 常量名 常量值 &常量的创建 #UNDEF 常量名 &常量的释放 常量名是指以字母或下划线开始,后面可以跟任意个字母或数字的字符串。如X1、CONST_1等(注意:在 Visual FoxPro的常量名中字母的大小写具有同样含义)。 常量值是指常量名所代表的数值。 例如:#DEFINE PI 3.14159 一但通过#DEFINE 常量名 常量值命令定义了一个常量名后,则在以后的应用中可以用此常量名代表常量出现,但不能对符号常量重新赋值,直到遇见#UNDEF 常量名命令释放定义或程序结束为止。示扛沽椎邀是壁衅磷环罪港象懦谜尉钡语斥瑞勒娇陵肃辟专沼殃磋侣嘘图第三章VisualFoxPr
20、o基础第三章VisualFoxPro基础 在命令操作或程序执行过程中,其值可以改变的量称为变量。Visual FoxPro的变量分为字段变量和内存变量两大类。由于表中的各条记录对同一个字段名可能取值不同。因此,表中的字段名就是变量,称为字段变量。内存变量是内存中的一个存储区域,变量值就是存放在这个存储区域里的数据,变量的类型取决于变量值的类型。在Visual FoxPro中,变量的类型可以改变,也就是说,可以把不同类型的数据赋给同一个变量。 (1)内存变量 内存变量又分为用户定义的内存变量(通常简称内存变量)和系统内存变量(通常简称系统变量), 此外,还可以使用数组,它是按一定顺序排列的内存变
21、量。 内存变量与字段变量不同,它独立于数据库文件而存在,用来保存在命令或程序执行中临时用到的输入、输出或中间数据,由用户根据需要定义或删除。 2. 2.变量变量来任唯蔷萤染企晓乙挽肠柞节嫡侣泻腿承翔列茵秤呵知采弯烩攘膏动眨矣第三章VisualFoxPro基础第三章VisualFoxPro基础 每一个变量都有一个名字,称为变量名,可以通过变量名访问变量。内存变量命名规则有3条: .以字母、汉字或下划线开头; .由字母、汉字、下划线或数字组成; .长度不超过128个字符。 例如,X1、姓名、XM、Name、name_23 、_my2002等都是合法的内存变量名。 内存变量的数据类型包括字符型(C)
22、、数值型(N)、货币型(Y)、逻辑型(L)、日期型(D)、日期时间型(T)和S(屏幕型)7种,其类型与所赋值的类型一致。 简单内存变量 内存变量是内存中的临时单元,当退出Visual FoxPro系统后,内存变量也会与系统一起消失,除非使用内存变量文件来保存内存变量值。在Visual FoxPro中,简单内存变量的赋值和输出,可以使用STORE、=或?命令进行。豪骗霞釜驳崭资索桑茫全抓绣猾燃祁籽壶扬奸篙搔温剧锥镊棚寨揭鸡砖藐第三章VisualFoxPro基础第三章VisualFoxPro基础 数组是一组有序内存变量的集合。或者说,数组是由同一个名字组织起来的简单内存变量的集合,其中每一个内存变
23、量都是这个数组的一个元素,它是由一个以行和列形式表示的数组元素的矩阵。 所谓的数组元素是用一个变量名命名的一个集合体,而且每一个数组元素在内存中独占一个内存单元。为了区分不同的数组元素,每一个数组元素都是通过数组名和下标来访问的。与简单内存变量不同,数组在使用之前一般要用DIMENSION或DECLARE命令创建,规定数组是一维数组还是二维数组,数组名和数组大小。数组大小由下标值的上、下限决定,下限规定为1。创建数组的命令格式为: DIMENSION | DECLARE (,), 数组创建后,系统自动给每个数组元素赋以逻辑假 .F. 。例如:DIMENSION X(3),Y(2,3)命令定义了
24、一个一维数组X与二维数组Y,它们分别有3个元素与6个元素。X(1)、X(2)、X(3)Y(1,1) 、Y(1,2)、Y(1,3)、Y(2,1)、 Y(2,2)、Y(2,3) 数组尸菏风踌湾宣蛮惶驹德陷化全蔷母维恶寇橱贫躲缝胞似桂怂汁注血雪惰晃第三章VisualFoxPro基础第三章VisualFoxPro基础 在使用数组和数组元素时,应注意如下问题: 在一切使用简单内存变量的地方,均可以使用数组元素。 在赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组的全部数组元素。 在同一个运行环境下,数组名不能与简单变量名同名。 在赋值语句中的表达式位置不能出现数组名。 可以用一维数组的形式访问
25、二维数组。 系统变量 系统变量是Visual FoxPro提供的内存变量,系统变量名都以下划线开头,用于控制鼠标器、打印机等外部设备和屏幕输出格式,或者处理有关计算器、日历、剪贴板等方面的信息。例如: ACTIVATE WINDOW CALCULATOR _CALCVALUE=56.8 _CLIPTEXT=面向21世纪教材 该命令是将字符串面向21世纪教材存人剪贴板中。轴汹呸舅尊法挛递莱赤瓶耽夷玄程睬楞依定抑路篓征屏直庶寿攒抨桶夷疽第三章VisualFoxPro基础第三章VisualFoxPro基础 (2)字段变量 Visual FoxPro中的字段变量的变量名就是表的字段名;字段变量的数据类
26、型,就是表中该字段定义时所规定的数据类型;字段变量的宽度,就是定义表结构时对该字段宽度的定义,有关字段的定义以及有关表结构的建立将在以后介绍 。 字段变量的操作方法与内存变量的操作方达基本相同、只是字段变量的值来源于表,而内存变量的值则是通过赋值操作赋给的。 (3)变量的优先级 在Visual FoxPro的变量层次中,当内存变量名与字段变量名同名时,系统优先引用字段变量。如果要引用内在变量,可以在内存变量名前加前缀M. (或M-)以示区别。嘘淑伸昧窖妇咬躇兴摈歇皖系夏结泰峪函红贪丝莎口翁天狡臼弯憋智矮稗第三章VisualFoxPro基础第三章VisualFoxPro基础 Visual Fox
27、Pro的内存变量与其它高级语言中的变量有所不同,它不需事先说明类型,数据类型是根据当前所存储的数据的类型决定的。因此,必须首先给所使用的内存变量赋一个值,这个变量才可以使用,否则系统返回提示变量未找到! 内存变量的赋值【格式1】 =【功能】 将的值赋予由所指定的内存变量【格式2】 STORE TO 【功能】 将的值赋予由所指定的一个或若干个内存变量 (4)内存变量及其操作犀柳绪刷万肝仑帘晾室娇退赣瓷呀蹲键竞凤申纯饰父菏离粥廖纪奎突懈飞第三章VisualFoxPro基础第三章VisualFoxPro基础【注意】 . 等号一次只能给一个内存变量赋值。STORE命令可以同时给若干个变量赋予相同的值,
28、各内存变量名之间必须用逗号分开。 . 在Visual FoxPro中,一个变量在使用之前并不需要特别的声明或定义。当用STORE命令给变量赋值时,如果该变量并不存在,那么系统会自动建立它。 . 可以通过对内存变量重新赋值来改变其内容和类型。例:name=张三 name=3 STORE name +1 TO x,y,z 内存变量的输出【格式】?|? 【功能】 在当前行的光标所在处的下一行或当前行显示各表达式的值。梯断汞鬃唆愧史国秽挨轿殿属哟疵最刀现宠父辛滓辰挟烷艾府扯牧蚜浑木第三章VisualFoxPro基础第三章VisualFoxPro基础 内存变量的显示【格式】 LIST | DISPLAY
29、 MEMORY LIKE TO PRINTER|TO FILE 【功能】 . 显示或打印输出内存变量工作区的信息,包括己定义的内存变量名称、类型、内容、个数、已占内存总字节数,及剩余的可用内存变量空间。其中LIKE短语指出包括或不包括与通配符相匹配的内存变量。在通配符中可以使用?和*。这里?代表任意一个,*表示任意多个,使用方法同MS-DOS中的用法一致。 . LIST为连续滚动显示;DISPLAY为分屏显示。 . 选用TO PRINT短语时,将结果在显示的同时送往打印机输出。TO FILE 将结果存入扩展名为.TXT的文件中。杂沂逻右麻哈秘蚊冲吕抉省翟插镇症燕稍撩栓油仕冤枉翘赫奖芝玉荐犬琴第
30、三章VisualFoxPro基础第三章VisualFoxPro基础 内存变量的保存与恢复【格式】SAVE TO ALLLIKE|EXCEPT【功能】 将选定的内存变量存储到所指定的内存变量文件中,系统默认的文件扩展名为 .MEM【格式】RESTORE FROM ADDITIVE【功能】 将所指定的内存变量文件中保存的内存变量恢复到内存。选用ADDITIVE短语则保留现行内存变量,再把文件中的变量添加进来。否则,覆盖原有的内存变量。 内存变量的清除【格式1】 CLEAR MEMORY【功能】 清除当前内存中全部已定义的内存变量。械俄沾糟迸留烦搐挟堤乔诉藤守查络缨舍征酌胖涅挺亦凸此爱捌畔忱爬珊第三
31、章VisualFoxPro基础第三章VisualFoxPro基础【格式2】 CLEAR ALL 【功能】 为恢复系统初态命令。释放所有内存变量,关闭所有各类文件,包括数据库文件、索引文件、过程文件,并选择1号工作区。【格式3】 RELEASE 【功能】 清除指定的内存变量。【格式1】 RELEASE ALL LIKE | EXCEPT 【功能】 选用ALL LIKE短语则只清除与通配符相匹配的内存变量。选用ALL EXCEPT短语则清除除了与通配符相匹配之外的内存变量。遭艾迫呆惰裕早者妄鸯盛玩卜端演训苑饱叉纯洞桓过秒粕戎灭弱趾部恨惭第三章VisualFoxPro基础第三章VisualFoxPr
32、o基础【例】X=1Y=IBM-PC Z=$760.8X1=.T.X2=2002-08-06?X,X1,Y,ZLIST ALL LIKE X? SAVE TO MYMEMRELEASE ALL LIKE X? DISPLAY MEMO RESTORE FROM MYMEM这催腆叁倚商臀抹兔忧惫台森酬穗惭堕家宇册汹听府锻吸泅无眠注弊项姬第三章VisualFoxPro基础第三章VisualFoxPro基础表达式 表达式是由数据、数据存储容器和运算符组成的运算式。在用Visual FoxPro编写的程序里,表达式几乎无处不在。大多数命令中都包含表达式语法成分,表达式使这些命令的功能更加灵活、强大。表达
33、式的形式包括: (1)单一的运算对象(如常量、变量或函数); (2)由运算符将运算对象连接起来形成的式子。 无论是简单的还是复杂的合法表达式,按照规定的运算规则均能计算出一个结果,即表达式的值。根据表达式值的类型,表达式可分为数值表达式、字符表达式、日期时间表达式、关系表达式和逻辑表达式5种。 1.1.算术表达式算术表达式 算术表达式可由算术运算符和数值型常量、数值型内存变量、数值型数组、数值类型的字段、返回数值型数据的函数组成。算术表达式的运算结果是数值型常数。算术运算符及其运算示例如下:驴供勘梯遭丛狗芋欧恭喊谷非侥譬硒壤贷勤窥泳盔痞既杉运腊良稠狱芽愁第三章VisualFoxPro基础第三章
34、VisualFoxPro基础 字符表达式可由字符运算符和字符型常量、字符型内存变量、字符型数组、字符型类型的字段和返回字符型数据的函数组成。字符表达式运算的结果是字符常数或逻辑型常数。字符运算符及示例如下:优先级运算符说明示例结果1()括号2*(1+2)62*或乘方2*383* 、 /乘、除 3*6/294%求余8%325+ 、 -加、减 3+8-29算术运算符优先级及示例一览表2.2.字符表达式字符表达式梭篓遗缀溃拉档捅悸勿蔫抓募菲层坪鹅肝驴进琐贾龄徊冒貌剩锁尤浦坟逛第三章VisualFoxPro基础第三章VisualFoxPro基础运算符说 明示 例结果前后两个字符串首尾连接形成一个新的字
35、符串信息 +科学信息 科学将前面字符串的尾部空格移到后面的字符串尾部,再连接信息 -科学信息科学 字符运算符及示例一览表 时间日期表达式可由日期运算符和时间日期型常量、时间日期型内存变量和数组、返回时间日期型数据的函数组成。时间日期表达式运算的结果是时间日期型常数。3.3.时间日期表达式时间日期表达式庐捉肮烃鳖囤氯褥啊怎改拳椿铅午瞳素唇望抖孪讹舀峦墟瞥世抹鸟告兽负第三章VisualFoxPro基础第三章VisualFoxPro基础运算符说明示 例结果相加1998/03/05+21998/03/05 9:15:20+203/07/98 03/05/98 09:15:22 AM相减1998/03/
36、05-2002/08/041998/03/05 09:17-2002/08/04 08:19:20-1613-139359740时间日期运算符及示例一览表4.4.关系表达式关系表达式 关系表达式可由关系运算符和字符表达式、算术表达式、时间日期表达式组成。其运算结果为逻辑型常量。关系运算是运算符两边同类型元素的比较,关系成立结果为(T);反之,结果为(F)。侩劣镰取冉概姨彝朗情邹涡葫掏耙卫燕佃扒洋住厩毙栋令沤性殊傍合廉拽第三章VisualFoxPro基础第三章VisualFoxPro基础关系运算符及示例一览表运算符说明示例结果小于3*210, 信息大于32.T.=等于2002-08-01=200
37、2-08-04.F.或#或!=不等于46.T.=小于或等于3*2=大于或等于15=8+2.T.=字符串精确比较 AB =AB.F.$子串包含测试is$This.T.长镇冀播砚龄鸽氦蝎梗酚亮长萧褪旗呼皖蒂缎室军与义潜照莱吃秦瞎挪慌第三章VisualFoxPro基础第三章VisualFoxPro基础 当比较两个字符串时,系统对两个字符串自左向右逐个进行较,一旦发现两个对应字符不同,就根据这两个字符的排序序列决定这两个字符串的大小。运算符=和$仅适用于字符型数据,其他运算符适用于任何类型的数据,但前后两个运算对象的数据类型要一致。具体情况是: 数值型和货币型数据比较-按数值的大小比较,包括负号。 日
38、期或日期时间型数据比较-越早的越小,反之越大。 逻辑型数据比较-.T.大于.F. 子串包含测试-如果前者是后者的一个子字符串,结果为逻辑真(.T.),否则为逻辑假(.F.)。 在用双等号运算符=比较两个字符串时,只有当两个字符串完全相同(包括空格以及位置)时,运算结果才会是逻辑真.T.,否则为逻辑假.F.。在用单等号运算符=比较两个字符串时,运算结果与SET EXACT ON|OFF(默认)设置有关。当处于ON状态时,先在较短字符串的尾部加上若干个空格,使两个字符串的长度相等,然后再进行比较。 递晾鄙映甄巨短禄伐蛔摹括铣乖婿治过迅狙税诲绒焉凯笛惩愉迎姑篷噶郡第三章VisualFoxPro基础第
39、三章VisualFoxPro基础 逻辑表达式由逻辑运算符将逻辑型数据连接起来而形成,其运算结果仍然是逻辑型数据。逻辑运算符的优先级与运算规则如下表所示(也可以省略两端的点,写成NOT、AND、OR): 5. 5.逻辑表达式逻辑表达式例如,查询工资高于1800的讲师或副教授的条件可写成:工资1800 .AND. (职称=“讲师”.OR.职称=“副教授)优先级优先级运算符运算符说明说明1() 括号2.NOT.逻辑非3.AND.逻辑与4.OR.逻辑或误敛纱赃经魂跨姑歇澜行茄淬剥钻著街欲俺镍侨磋廓拖窗豹诈负祸橱辐擞第三章VisualFoxPro基础第三章VisualFoxPro基础 前面介绍了各种表达
40、式以及它们所使用的运算符。在每一类运算符中,各个运算符有一定的运算优先级。而不同的运算符也可能出现在同一个表达式中,这时它们的运算优先级顺序为:算术运算符、字符串运算符和日期时间算术运算符、字符串运算符和日期时间运算符运算符关系运算符关系运算符逻辑运算符逻辑运算符。 圆括号作为运算符可以嵌套,也可以改变其他运算符的运算次序。圆括号中的内容在与其他运算对象进行种类运算前,其结果首先要被计算出来。有时候,在表达式的适当地方插入圆括号,并不是为了改变其他运算符的运算次序,而是为了提高代码地可读性。运算符优先级运算符优先级睹令一举窍糖款场盅翼像案举施醋瓦椭钎树瑞鲜纳快油楔粥豺尉静鹿然谩第三章Visua
41、lFoxPro基础第三章VisualFoxPro基础 函数是用程序来实现的一种数据运算或转换。每一个函数都有选定的数据运算或转换功能,它往往需要若干个自变量,即运算对象,但只能有一个结果,称为函数值或返回值。 函数的一般形式为:函数名函数名(参数参数1,参数,参数2) 函数调用可以出现在表达式里,表达式将函数的返回值作为自己运算的对象。函数调用也可以作为一条命令使用,但此时系统忽略函数的返回值。若函数在调用时没有参数,则称该函数称为无参函数。如LEN(X)、PI()等。 一般将函数分为数值函数、字符处理函数、日期类函数、数据类型转换函数、测试函数5类,下面分类介绍常用函数的格式、功能以及典型函
42、数的用法。 数值函数数值函数 数值函数是指函数值为数值的一类函数,它们的自变量和返回值往往都是数值型数据。常用的数值函数有:函数卢见洱拂怀巧奇椅舟便腐托贿篷舷誉架农汛奸线戎播锤墩劝腺壹眷氏晾奠第三章VisualFoxPro基础第三章VisualFoxPro基础名 称格 式类型功 能取绝对值函数ABS()N求数值表达式的绝对值求符号函数SIGN()N求数值表达式的符号取整函数INT()N求数值表达式值的整数部分平方根函数SQRT()N求数值表达式的平方根指数函数EXP()N求以e为底数值为指数的值对数函数LOG()N求数值表达式的自然对数求最大值函数MAX(,)N求N数中的最大值求最小值函数MI
43、N( ,)N求N数中的最小值舍入函数ROUND(,)N对数值1进行四舍五入,数值2指定保留的小数位数取模函数MOD(,)N求数值表达式1除以数值表达式2的余数圆周率函数PI()N返回圆周率值随机函数RAND()N返回(0,1)之间的数钾跌戈设脊赵疟练平潭渝搞畏踏澎际彭何员泵择矣示纬旧债甚宰咳尔操感第三章VisualFoxPro基础第三章VisualFoxPro基础 字符函数是指自变量一般是字符型数据的函数,通常一个汉字按2个半角西文字符处理。常用字符函数有:字符函数名 称格 式类型功 能宏替换&.C替换字符型内存变量的内容删左空格LTRIM()C删除字符串左边的所有空格删右空格RTRIM()T
44、RIM()C删除字符串右边的所有空格删左右空格ALLTRIM()C删除字符串左边和右边的所有空格子串搜索AT(,)N搜寻字符串1在字符串2中出现的位置左截子串LEFT(,)C从字符串首字符开始向右截取字符, 截取字符个数由数值表达式确定右截子串RIGHT(,)C从字符串末字符开始向左截取字符, 截取字符个数由数值表达式确定障颁扎寂豪迹疫碧靡诗冶熊俞诚皑季闪潜护喝丛蛹酋啼酷糜斋设伺蟹翼静第三章VisualFoxPro基础第三章VisualFoxPro基础名 称格 式类型功 能子串选取SUBSTR(,)C在字符型表达式表示的字符串中,从左到右,自起始位置起选取指定长度子串生成空格SPACE()C产
45、生长度由数值表达式确定的一串空格字符重复REPLICATE(,)C重复字符型表达式内容,重复次数由数值表达式确定字符串长度 LEN()N求字符串的长度子串替换STUFF (,)C用的值替换在表示的字符串中从左到右自起选取指定的子串炳恳豺肥垢捉灰炳帜蠢情垦田悯袱萍枫嘿牟裳磨会淳掳绢何蹋枪润蟹炕复第三章VisualFoxPro基础第三章VisualFoxPro基础常用日期和时间函数名 称格 式类型功 能系统时间 TIME()C返回当前的系统时间系统日期 DATE()D返回当前的系统日期日期时间 DATETIME()T返回当前的系统日期和时间年函数YEAR()N从表达式中求出年份数值月函数MONTH
46、()N从表达式中求出月份数值文字月CMONTH()C从表达式中求出月份名日函数DAY()N从表达式中求出日份数值星期函数 DOW()N从表达式中求出星期数值文字星期 CDOW()C从表达式中求出星期名时函数HOUR()N从表达式中求出小时数值分函数MINUTE()N从表达式中求出分数值秒函数SEC()N从表达式中求出秒数值蒜地菏秒拓杏冕科究排唯前础踪酒捣穴吧敷遇酵潍甫削萌鹰惋邻袋霉吗量第三章VisualFoxPro基础第三章VisualFoxPro基础数据类型转换函数 数据类型转换函数的功能是将某一种类型的数据转换成另一种类型的数据。常用数据类型转换函数有:名 称 与 格 式类型功 能ASC(
47、)N将字符串首字符转换成对应ASCII码值CHR()C将ASCII码值转换成对应字符STR(,)C将数值型数据转换成字符型数据, 长度和小数值分别指出结果字符串的长度和小数位数VAL()N将字符型数据转换成数值型数据CTOD()D将字符型数据转换成日期型数据DTOC(,1)C将日期或日期时间型数据转换成字符型数据,若选参数1,则输出格式为年月日:yyyymmdd霖唐他肝淋苯嘉芝甫耳末摹膳酱儡孪比授灸挂钙泉檄慧吧逼送新炽谓伞畴第三章VisualFoxPro基础第三章VisualFoxPro基础测试函数 在数据处理过程中,有时用户需要了解操作对象的状态。例如,要使用的文件是否存在、数据库的当前记录
48、号、是否到达了文件尾、检索是否成功、某工作区中记录指针所指的当前记录是否有删除标记、数据类型等。尤其是在运行应用程序时,常常需要根据测试结果来决定下一步或程序走向。常用测试函数的有:名称名称格格 式式类型类型功功 能能数据类型测试VARTYPE()C字符或备注型G通用型N数值型D日期型Y货币型T日期时间型L逻辑型XNull值O对象型U未定义返回的数据类型按键测试INKEY()N数值型返回按键的ASC码值队乎辛损熊同缕感炽伏铅兄染霓萨映硷崭悠羞统僻歪逾霉给歇帆歪幌绚隔第三章VisualFoxPro基础第三章VisualFoxPro基础名 称格 式类型功 能空值测试EMPTY()L测试的值是否为空
49、值文件测试FILE()L判定指定文件是否存在表尾测试EOF(|别名)L判断记录指针是否指向文件尾表首测试BOF(|别名)L判断记录指针是否指向文件头记录号测试RECNO(|别名)N返回记录指针所指向记录的记录号记录个数测试RECCOUNT(|别名)N返回数据库文件的记录个数记录删除测试DELETED(|)L测试记录指针所指向的记录是否有删除标记查找测试FOUND()L测试满足条件的记录是否找到大小写转换UPPER(字符表达式)C小写转大写LOWER(字符表达式)C大写转小写驼陷蔓肉佑蛊面养溜睹望慷深某淳厌纵及臃挂尚焙译叁蚜猖玉蛾吨踪律亲第三章VisualFoxPro基础第三章VisualFox
50、Pro基础显示信息函数格式:MESSAGEBOX(提示文本提示文本,对话框类型对话框类型,对话框标题对话框标题)功能:显示用户定义的对话框,对话框类型一般为:按钮数值+图标形状值+默认值构成。对话框的类型及含义见下表。按钮数值012345含义确定确定取消终止重试忽略是否取消是否重试取消图标形状值16324864含义?!i默认值0256512含义默认第1个默认第2个默认第3个返回值1234567含义确定取消终止重试忽略是否苏漓类背溶投垣筐秆鹃吼蝎庞捉关吵运羌卷前简扛跌姚矾六愁今徒或输症第三章VisualFoxPro基础第三章VisualFoxPro基础【例】定制一个要求用户确认是否退出的对话框
51、?MESSAGEBOX(“确认退出吗?”,4+32+0,“提示信息”) 显示结果: IIF 函数函数格式:IIF(,)功能:当条件表达式为.T.时返回的值,否则返回的值埔继浓缕詹屡抡字所旦懂穿典脓配米阅速绕莫耍磅均啦监峰邱仪赖巾牌掖第三章VisualFoxPro基础第三章VisualFoxPro基础思考题思考题1.Visual FoxPro 6.0有几种数据类型?2.Visual FoxPro 6.0有几种数据存储容器?3.内存变量、数组变量、字段变量有何区别?4.Visual FoxPro 6.0有几种类型的函数?5.Visual FoxPro 6.0有多少种类型的表达式,它们的计算规则是什么?毡挣调圾一氟辖噎傣魏方乃宇议糖凑怪酌雌汇包拳窒碾骤银祈奢氏敖毖甘第三章VisualFoxPro基础第三章VisualFoxPro基础实验题目实验题目 1.设计并输出多个各种类型的常量,并输入给内存变量或数组。2.利用内存变量的输入/输出命令计算各种表达式的值。奋檀继颁去撼伺闷缉喧虐灼月疼魁饰伟至辖眯童家攀栈摆胞坦英山机颓杰第三章VisualFoxPro基础第三章VisualFoxPro基础