版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章VisualFoxPro
数据库管理系统概述9/25/202412.1VisualFoxPro的操作环境2.2VisualFoxPro文件类型2.3VisualFoxPro的项目管理及其操作2.4VisualFoxPro语言基础9/25/20242VFP的特点数据库方面区分了数据库与数据表的概念
Rushmore技术(速度快,多索引)
SQL命令(高效检索)数据操作方面简单、灵活、多样的数据交换手段
VisualFoxPro(简称VFP)是基于
Windows平台和服务器上的可视化数据库管理系统。9/25/20243程序设计方面(可视化应用程序)可视化、少量程序代码可靠性高调试简单 项目编译面向对象9/25/20244操作使用方面完善的IDE(菜单、工具条或快捷键)丰富的开发工具向导:表单向导设计器:表设计器生成器:表达式生成器管理器:项目管理器9/25/202452.1VisualFoxPro的操作环境
2.1.1VisualFoxPro操作界面命令窗口主窗口:用于输出结果菜单栏工具栏状态栏9/25/20246命令窗口是用来直接输入VisualFoxPro命令的用户接口,在命令窗口输入命令后,按回车键,立即执行输入命令。命令窗口命令执行结果显示关闭命令窗口方法:按命令窗口右上角的“关闭”按钮可关闭命令窗口显示命令窗口方法:1.可选“窗口”菜单中“命令窗口”项2.使用常用工具栏上的命令窗口按钮3.使用快捷键Ctrl+F2。命令窗口介绍9/25/20247选择命令项右边的组合键,例如,Ctrl+N、Ctrl+O、Ctrl+P等,是执行命令项的键盘操作快捷键选择命令项右边有“…”符号的,表示选中此命令项时,会弹出相应对话框。选择命令项右边有“►”符号,的,表示选中此命令项时,会弹出相应级联菜单。菜单项介绍9/25/20248单击主菜单的“显示”菜单,在下拉菜单中选择“工具栏”菜单项,弹出“工具栏”对话框。工具栏介绍9/25/202492.1.2命令说明
命令的语法格式说明删除文件的命令,其格式为:
DELETEFILE
[fileName
|?]
[RECYCLE]
在命令窗口和程序中都使用分号“;”实现换行输入,绝大多数命令中的关键字和函数名均可用前4个字符代替。9/25/202410说明filename表示要删除文件的路径及文件名[]
:可选表示符号,方括号中的内容是可选项例如:DELETEFILEDELETEFILE
RECYCLE|:二选一表示符号,要求用户从本符号的左右两项中选择一项例如:DELETEFILED:\aaa.txtDELETEFILE?…
:省略符号,它表示在一个命令或函数表达式中,某一部分可以按同一方式重复DELETEFILE
[fileName
|?]
[RECYCLE]9/25/202411右边命令输出的结果2.几个常用命令*与&&命令——均引导注释内容?与??命令——均显示内容,二者区别CLEAR命令——清空主窗口屏幕内容,问命令窗口如何清空QUIT命令——关闭VFP窗口注释区别:*必须为命令行的第1个字符;&&可以在命令之后区别:?命令换行显示??命令接着显示数改变命令窗口中的字体:格式->字体;改变主窗口的字体大小:_screen.fontsize=309/25/2024122.几个常用命令DIR命令——在VFP主窗口处显示文件的目录例如:DIRd:\*.txt&&显示d盘中所有的txt文件MD/RD/CD命令——MD创建文件夹,RD删除文件夹,CD指定当前工作目录例如:MD
d:\vfp&&在d盘创建名为vfp的文件夹
RD
d:\vfp&&删除d盘上的名为vfp的文件夹9/25/202413COPYFILE/RENAME/DELETEFILE命令——拷贝、更名、删除文件例如:COPYFILEd:\*.txttoF:&&拷贝d盘txt文件到F盘RENAMEd:\*.txttod:\*.doc&&将d盘txt文件改名为docDELETEFILE*.txt&&删除所有txt文件RUN命令——调用DOS命令或Windows应用程序例如:RUN/Ncalc&&打开Windows计算器程序9/25/2024143.补充:命令的输入和编辑输入命令,按下回车键(Enter键),命令被执行,得到结果(特别注意:请使用英文标点符号)若命令太长,长命令可用分号(;)续行,多行的长命令插入新行可用【Ctrl+Enter】若想重复执行命令,则将光标移到以前命令行的任意位置,按Enter键重新执行此命令?1+2+3+4+5
按下Enter键
15
?1+2+3+4+5+6+7+8+9+10+11+12+13+;
按下Ctrl+Enter键
14
按下Enter键
105光标放在末尾按下Enter键,此命令被重新执行
15
9/25/202415
2.1.3配置VisualFoxPro操作环境VisualFoxPro的配置决定了VisualFoxPro系统运行时的外观和行为。VisualFoxPro启动以后,还可以使用“选项”对话框”或SET命令进行附加的配置设定。9/25/202416
2.1.3配置VisualFoxPro操作环境——选项对话框先选择“设置为默认值”,再选择“确定”,所有设置在下次启动VFP时仍然有效。只选择“确定”,所有设置在下次启动VFP时不起作用。按住shift键,再选择“确定”,则所有设置以命令方式显示在主窗口中。9/25/2024172.1.3配置VisualFoxPro操作环境——Set命令例如:SetdefaulttoF:\&&设置默认路径为F盘常用的Set命令如表2-1所示(书P34页)2.2VisualFoxPro文件类型如表2-2所示(书P35页)常考需要熟记各个类型,例如:创建项目文件,生成.pjx与.pjt文件9/25/2024182.3VisualFoxPro的项目管理及操作选项卡1.VisualFoxPro的项目是一个系统中文件、数据、文档等的集合。2.项目管理器是VisualFoxPro中处理数据和对象的主要组织工具,是系统“控制中心”。 按钮9/25/202419创建项目方法一:CREATEPROJECT命令方法二:使用“文件”菜单的“新建”按钮方法三:使用常用工具栏上的“新建”按钮9/25/202420打开项目(考试中用到)使用“文件”菜单的“打开”按钮——默认目录是vfp98立即利用cd命令修改默认目录——改头去尾按回车此时,再使用“文件”菜单的“打开”按钮——默认目录是9/25/2024212.3VisualFoxPro的项目管理及操作2.3.1页面全部数据:一个项目中的所有数据(数据库、自由表、查询、视图)文档:处理数据时所用的全部文档(表单、报表和标签)类:表单和程序中所用的类库和类代码:程序、API库和应用程序其他:菜单、文本文件和其他文件(如位图、图标等)2.3.2定制项目管理器演示图2-4演示图2-5演示图2-6+号:展开-号:折叠9/25/2024222.3VisualFoxPro的项目管理及操作
2.3.3项目管理器的操作(演示)1.命令按钮——首先选定对象新建:创建一个新文件或对象添加:把现有文件添加到项目中修改:相应设计器移去:从项目中移去选定的文件或对象(从项目中还是存储器上?)连编:连编一个项目或应用程序(可执行程序)运行:执行选定的查询、表单或程序浏览:在‘浏览’窗口中打开选定的表或视图,当且仅当选定一张表或视图时可用关闭:关闭数据库,当且仅当选定一个数据库时可用打开:打开数据库,当且仅当选定一个数据库时可用预览:在打印预览方式下显示选定的报表或标签9/25/2024232.3VisualFoxPro的项目管理及操作2.3.3项目管理器的操作2.快捷菜单命令——右键选择包含与排除:带斜线的圆圈表示连编时将被排除,所有的包含文件在运行时都是只读的设置主文件:把选定的程序、表单、查询或菜单指定为主文件,该主文件在已编译的应用程序中作为主执行程序执行,即应用程序的入口程序。主程序文件用粗体表示。重命名编辑说明项目信息3.项目间共享文件一个文件可同时属于不同的项目方法:打开两项目,在包含该文件的‘项目管理器’中选择该文件,然后拖动该文件到另一个项目容器中即可9/25/2024242.4VisualFoxPro语言基础2.4.1数据类型(P39-40)*仅有于表的字段数据类型中文名称说明大小(字节)Character字符型
C各种字符组成的串254Currency货币型Y货币单位8Numeric数值型
N整数或小数20Float浮点型*
F单精度数值型20Date日期型
D年月日8Datetime日期时间型
T年月日时分秒8Double双精度型*
B
双精度数值型8Integer整型*
I整数4Logical逻辑型
L真或假1Memo备注型*
M
超过254的不定长字符串4General通用型*
G
OLE图象、多媒体对象4数据类型是指数据对象的取值集合,以及对之可施行的运算集合(相同类型才可以运算)。9/25/2024252.4.2常量与变量大多数程序设计语言允许使用常量、变量和数组来存储数据,VFP还可以使用记录和对象。
1.名称命名规则(P41)名称中只能包含字母、下划线“_”、数字和汉字名称开头只能是字母、下划线或汉字,不能是数字表的字段名、索引标识名最多只能是10个字符,其余名称长度可以是1~128个字符避免使用系统保留字(如Use、Set、Date)例如:判断下列名称的合法性cVar2xccnVar2sum_of_score2_xd_aver_gznum-of-renshu
nSum&re_avg#sdset9/25/2024262.常量:在整个操作过程中值保持不变。
数值型常量:由数字、小数点和正负号构成如-3.15、38、3.12E+28、3.12E-28如$100.35、$2104货币型常量:数字前加美元符号($)逻辑型常量:逻辑真和逻辑假如真:.T..t..Y..y.
假:.F..f..N..n.9/25/202427字符型常量:由字符串“定界符”括起来的一串字符定界符可以是单引号、双引号或方括号。不能用中文标点的单引号或双引号作为字符串的定界符定界符必须成对出现,不能出现“一头为单引号而另一头为双引号”等情况9/25/202428如果某种定界符本身也是字符串的内容,则需要用另一种定界符表示字符串不包含任何字符的字符串(“”)称为“空串”,它与包含空格的字符串(“”)不同字符串中的字母,其大小写不等价如:‘苏-001’”51109876”[vfp]’abcd”ef”g’[哈哈“笑”]‘ABCDE’与‘abcde’是不同的字符串9/25/202429时间型和日期时间型常量:定界符是一对花括号,年月日之间用/或—或.或空格分隔,时分秒之间用:分隔,传统的日期格式的语法形式:{mm/dd/yy[hh:[mm[:ss]][am|pm]]}严格的日期格式的语法形式:(系统默认)
{^yyyy/mm/dd[hh:[mm[:ss]][am|pm]]}
如:{^2013-03-01} {^2013-03-018:12A}9/25/2024303.内存变量:在任何时候都可以发生变化。
(1)变量的创建
内存变量不需要特别申明,在使用时可以使用STORE命令或“=”赋值运算符直接进行赋值。在赋值的同时,也完成了变量的创建,并且确定了该变量的数据类型以及目前变量的值。9/25/202431变量的创建y=2&&=只能给一个变量赋值store“123”tox,y,z
&&store将同一个值赋值给多个变量使用格式1:STORE数据值
TO变量名格式2:
变量名
=数据值赋值号9/25/202432例:cVar='VFP'Store1tonVar1,nVar2nVar1=cVar
cVar=nVar2?cVar
&&值为1?nVar1&&值为vfp?nVar2&&值为19/25/202433(2)、控制变量访问 内存变量用于程序中,可以使用相应的命令指定变量的作用域。用LOCAL指定局部变量 局部变量只能在当前程序中使用,当它们所属的程序运行结束后,局部变量被释放。例如:LOCALCX19/25/202434用PRIVATE指定私有(隐藏)变量
PRIVATE可以把上层变量(调用程序中定义的变量)的值在当前程序中隐藏起来,用户在当前程序中可以正常使用和这些变量同名的变量。例如:PRIVATECX2,CX39/25/202435用PUBLIC指定全局变量
全局变量在程序运行的全过程中,其值均不会丢失。
在命令窗口中创建的任何变量被自动赋予全局变量。例如:PUBLICCX4,CX5,CX69/25/202436(3)访问变量字段变量和内存变量
CNO=100结论:如果表的字段变量和内存变量同名,则字段具有更高的优先权,可以在变量名前加m.前缀或m->来引用内存变量。CNO=100?CNO&&显示CC112,字段变量的值?m.CNO&&显示100,内存变量的值?m->CNO&&显示100,内存变量的值9/25/202437
(4)、内存变量的保存与恢复 内存变量是系统在内存中设置的临时存储单元,当退出VFP时其数据自动丢失。若要保存其值,可用SAVETO命令将变量保存到文件中,命令格式如下:SAVETO
内存变量文件名[ALLLIKE
变量名通配符|ALLEXCEPT
变量名通配符]其中:
ALLLIKE
子句指定需保存的变量,
ALLEXCEPT子句指定不需保存的变量。缺省ALLLIKE或ALLEXCEPT子句时,表示保存当前所有的内存变量。9/25/202438
内存变量文件的扩展名为.mem例:
SAVETO
Mvar
ALLLIKE?Yan*
&&第2~4个字符为“yan”的所有变量保存到mvar内存变量文件中
RESTOREFROM命令可将保存到文件中的变量恢复到内存:RESTOREFROM
内存变量文件名[ADDITIVE]其中:ADDITIVE子句将文件中的内存变量追加到当前内存中来,否则,当前内存变量被清除。9/25/202439
4.数组 数组是变量的有序集合,占用连续的存储单元,(按行存放),组成数组的变量称为数组元素,也叫做下标变量。数组可以是一维数组,也可以是二维数组,一个数组中的数组元素可以是不同的数据类型。
(1)数组的声明数组在使用前须预先声明(定义)DIMENSION|DECLARE|PUBLIC|LOCAL数组名(行数,[列数])私有数组全局数组局部数组9/25/202440注意:
1.数组在声明之后,每个数组元素的默认值均为逻辑值.F.,数据类型为
L。
2.用一个语句可为所有的数组元素赋相同的值。9/25/202441例2:dimeY(3)&&表示定义了一个一维的数组Y,包含3个元素分别为:Y(1)、Y(2)、Y(3)Y(1)=123Y(2)=“电脑”?Y(3)Z=Y?Z&&Y(3)没有赋值,则值为.F.&&将Y(1)的值给变量Z&&123.F..F..F.123电脑9/25/202442例3:请写出下列命令输出的结果dimey(2,3)y(1,1)=“12”y(1,2)=y(1)+“3”store0toy(1,3),y(2,1),y(2,2)?y(1,2)?y(6)&&123&&.F.二维数组可用一维形式使用12123000.F.Y(2,3)9/25/2024434.数组
为数组元素赋值:可以使用SCATTER、GATHER、COPYTOARRAY、APPENDFROMARRAY等命令在数组元素与表记录之间传递值。5.字段变量——第3章介绍9/25/2024446.对象:类的实例
类:对于拥有数据和一定行为特征的对象集合的描述
VisualFoxPro对象可以是表单、表单集或控件
7.不同数据存储容器的作用域——如表2-4所示(书P46)9/25/202445存储数据的作用域(P46)9/25/202446练习1、字符型常量也称为字符串,它是由字符串“定界符”括起来的一串字符。字符串定界符可以是单引号、双引号或
。2、以下符号中,属于VFP常量的是
。
A、.T. B、DATE C、EOF D、#VFP6.0#3、VFP中可以用
命令给多个变量赋同一个值。
方括号ASTORE9/25/202447练习4、下列字符型常量的表示中,错误的是
。
A)[[品牌]] B) '5+3' C)'[x=y]' D)["计算机"]5、以下正确的赋值语句是
。
A)A1,A2,A3=10 B)SET10TOA1,A2,A3 C)LOCAL10TOA1,A2,A3 D)STORE10TOA1,A2,A39/25/2024482.4.3VisualFoxPro系统函数函数:是一种预先编制好的程序代码,可供用户或程序调用。函数包含一对圆括号以便与命令相区别。函数分为2大类:系统函数和用户自定义的函数语法规则:函数([参数1,[参数2[,…]]])函数的三要素:
功能与名称;
自变量的类型,个数,位置;
函数的值及值的类型。注意每个函数的作用,返回值9/25/2024491.数值函数:用于处理数值型数据,其返回值也为数值型数据(1)求绝对值:ABS(数值表达式)例:?ABS(-5.6+5)Store40tonum1Store2tonum2?ABS(num2-num1)&&显示0.60&&显示389/25/202450(2)求最大值:MAX(表达式1,表达式2,…)
例:?MAX(-45,2,22,-22)?MAX(‘a’,’b’)?MAX({^2003-11-11},{^2002-5-6})?MAX(.T.,.F.)&&显示22&&显示b&&显示11/11/03&&显示.T.(3)求最小值:MIN(表达式1,表达式2,…)
例:?MIN(-45,2,22,-22)Store40tonum1Store2tonum2?MIN(num2-num1,39)&&显示-45&&显示-389/25/202451(4)取整:INT(数值表达式)
例:?INT(12.5)?INT(-6.8)?INT(9.6-0.5)&&显示12&&显示-6&&显示99/25/202452(5)模运算求余数(%):Mod(a1,a2)函数功能:用a1的值去除a2的值,返回余数。函数值(余数)的符号与A2相同;当a1与a2符号相同时,函数值为二者的余数;当a1与a2符号不相同时,函数值为二者相除的余数再加上除数a2的值。被除数A1的小数位数决定了函数值的小数位数。例:?mod(36,10)
&&显示6
?mod((4*9),90/9)
&&显示6 ?mod(25.250,5.0) &&显示0.250 ?mod(23,-5)
&&显示-2
?mod(-23,-5)
&&显示-3
?MOD(-23,5)
&&显示29/25/202453(6)四舍五入:ROUND(数值表达式,小数位数)例:Setdecimalsto4&&小数位为4位Setfixedon&&小数位是否固定,默认是不固定?ROUND(1234.1962,3)&&1234.1960?ROUND(1234.1962,2) &&1234.2000?ROUND(1546.1962,-3)&&2000.00009/25/202454(7)求平方根:SQRT(数值表达式)例:Setdecimalsto2?SQRT(2)9/25/202455(8)随机函数:RAND()
&&产生0~1之间的随机数例:?RAND()&&显示一个0~1的随机数如何产生1~100之间的随机整数。可用以下公式:记住此公式
Int((上限-下限+1)*Rand())+下限?INT(100*rand())+1*产生一个a~b之间的随机整数为:?INT((b-a+1)*rand())+a9/25/202456(1)去前后空格:ALLTRIM(字符串表达式)
去后缀空格:TRIM(字符串表达式)
RTRIM(字符串表达式)
去前缀空格:LTRIM(字符串表达式)例:cVar=”VFP”?ALLTRIM(cVar)cVar=”VFP”?TRIM(cVar)2.字符函数9/25/202457(2)求
表达式1在
表达式2中首次出现的位置:AT(<表达式1),<表达式2>[,出现次数])
注:出现次数默认为1,AT区分大小写,ATC功能同上,但不区分字母大小写例:Store‘Nowisthetimeforallgoodmen’toaStore‘isthe’tob?AT(b,a)Store‘IS’tob?AT(b,a)?ATC(b,a)9/25/202458(3)求字符串长度:LEN(字符串表达式)例:cVar=”VFP”?LEN(cVar)?LEN(“VFP是简写”)?LEN(ALLTRIM(“VFPhelp”))9/25/202459(4)求子串:SUBSTR(字符串表达式,位置[,长度])注:长度缺省时指返回结束前的全部字符例:Store‘abcdefghijklm’tomystring
?SUBSTR(mystring,6,2)?SUBSTR(mystring,6)aa=”河海大学”?SUBSTR(aa,5,4)9/25/202460(5)求左子串:LEFT(字符串表达式,长度)
求右子串:RIGHT(字符串表达式,长度)例:?LEFT(‘Redmond,WA’,7)?RIGHT(‘Redmond,WA’,7)(6)SPACE(算术表达式)例:?Space(3+6)&&产生9个空格9/25/2024613.日期和时间函数(1)DATE()、TIME()与DATETIME()例:setcenturyoff?date()setcenturyon?date()?time()?datetime()setdatetolong?date()setdatetoansi?date()sr={^2008/08/08}?date()-sr
&&显示今天距2008-08-08多少天
9/25/202462(2)YEAR(日期/时间表达式)、MONTH(日期/时间表达式)与DAY(日期/时间表达式)例:?Year(date())?Month(date())storemonth(gdBuy+31)togdMonth?gdMonth9/25/202463(3)DOW(日期/时间表达式)注:得到该日期是一周的第几天(第一天为星期日)例:?DOW(date())?DOW({^2008-08-08})9/25/2024644.数据类型转换函数(1)ASC(字符串表达式)
&&返回最左边的ASCII值例:?ASC(‘ABCD’)?ASC(‘8’)(2)CHR(数值表达式)
&&ASCII值转成字符注:CHR(13)为换行符例:?CHR(65)&&显示A?CHR(57)&&显示99/25/202465(3)VAL(字符串表达式)
&&从左到右返回字符表达式中的数字数值,直至遇到非数值型字符时为止(字符串转成数值)。若表达式的第一个字符不是数字,也不是加、减号,则函数返回0
例:a='12‘b='14'?a+b?val(a)+val(b)?val(‘234aaaa’)Store‘1.25E3’toc?2*val(c)9/25/202466(5)STR(数值表达式[,宽度[,小数位数]])&&数值型转字符型注:缺省时默认宽度为10,小数位数为0,若宽度大于整个数值的宽度,则用前导空格填充
例:?STR(314.15)&&显示314
?STR(314.15,5)&&显示314
?STR(314.15,5,2)&&显示314.2?STR(314.15,2)&&显示**?STR(1234567890123)&&显示1.234E+12X=123Y=321?str(X)+str(Y)&&显示1233219/25/202467(4)DTOC(日期/时间表达式[,1])&&日期型转字符型
TTOC(时间表达式[,1/2])&&时间型转字符型
参数:1用于指定以年月日顺序且无分隔符的形式返回字符型日期,参数2仅返回时间部分
CTOD(字符串表达式)&&字符型转日期型
CTOT(字符串表达式)&&字符型转时间型9/25/202468例:Store{^1995/10/3110:34}togdThisDate?DTOC(gdThisDate)?DTOC(gdThisDate,1)?TTOC(gdThisDate)?TTOC(gdThisDate,1)?TTOC(gdThisDate,2)setdatetolong?DTOC(date())StoreCTOD(‘^2101/12/15’)togdStoreCTOT(‘^2001-10-1222:22’)togd?gd
9/25/2024695.其他常用函数(1)BETWEEN(表达式,下界,上界)例:?Between(3,14,15)&&.F.?Between(date(),{^2001/12/15},{^2101/12/15})&&.T.(2)INKEY(时间表达式)例:?INKEY(20)&&等待20s返回按键的ascii值?INKEY()&&一直等待键击9/25/202470(3)TYPE(
“表达式”
)
例:?TYPE("date()") &&D?TYPE("(12*3)+4") &&N(4)IIF(逻辑表达式,返回值1,返回值2)例:?IIF(dow(date())=1ORdow(date())=7,'今天休息','今天上班')9/25/202471(5)DISKSPACE()例:setdefaulttoC:?diskspace()?diskspace()/1024/1024(6)FILE(‘文件名’)例:?FILE(‘c:\config.sys’)&&显示.T.9/25/202472(7)MESSAGEBOX(字符表达式[,数值表达式[,标题]])注意:
MESSAGEBOX()的缩写不能写成MESS(),只能写成MESSAGEB()例:?MessageBox("这是一个例子!!",3+16+256,"我的应用程序")?MessageBox("请你换行"+CHR(13)+"显示",1+64+0,"小例子")9/25/202473(8)GETFILE(“文件扩展名”[,“文件名”])
例:gc=GETFILE(‘dbf’,‘表文件名’)?gc9/25/202474练习1、下列函数中,返回值为字符型的是
。
A、AT() B、STR() D、VAL() D、CTOD()2、函数Round(123.148,-2)的返回值是___。
A、123.148 B、100 C.、123.00 D、123.0003、函数LEN(DTOC(DATE(),1))的返回值是
。BB89/25/2024752.4.4运算符与表达式表达式:
由常量、变量、函数及运算符组成的式子。1.数值运算符与表达式(),**或^
(乘方),*
,
/
,
%(模),
+
,—例:?(8-3)*(18/3)-5?4**3-5^2?35%6&&显示25&&显示39&&显示5,等同于MOD(35,6)9/25/2024762.4.4运算符与表达式表达式:
由常量、变量、函数及运算符组成的式子。1.数值运算符与表达式(x^3+Sqrt(y-10))/(2*x*y)(A-B)/(A*(A+B))9/25/202477(1)字符串连接符:+例:?“1+2”+“1”2)字符串连接符-例:?“12”-“3”+“4”(3)字符串匹配符:$例:?“ab”$“abc”
?“王”$“王一平”&&显示1+21&&显示1234
&&显示.T.&&显示.T.
2.字符运算符与表达式9/25/2024783.日期(和日期时间)运算符与表达式有两种运算符“+”、“-”(1)一个日期可以减去或者加上一个整数,结果为一个新的日期:
?{^2009/11/07}-2
?{^2009/11/07}+20?{^2009/11/0710:10:10p}+50&&显示11/05/09&&显示11/27/09&&显示11/07/0910:11:00pm9/25/2024793.日期(和日期时间)运算符与表达式(2)两个日期(日期时间)相减:结果为两个日期相差的天数(秒数),可以是负数。
?{^2009/11/07}-{^2009/11/02}?{^2009/11/02}-{^2009/11/07}?{^2009/11/0710:10:10p}-{^2009/11/0610:10:10p}
注意:不可以对两个日期型数据或日期时间型数据进行相加运算&&显示5&&显示-5&&显示864009/25/202480用于任意数据类型的数据比较,要求符号两边的数据类型相同,运算结果为逻辑值。主要有<、>、=、<>或#或!=、<=、>=、==?“10”>“9”?“11”>=“11”?“ABCD”=“ABC”*注:默认的字符序列是PinYin(P60)字符串精确比较:==&&显示.F.&&显示.T.&&显示.T.4.关系运算符与表达式9/25/202481当SETEXACTON
?‘ABCDE’=‘ABC’ &&.F.?‘ABCX’=‘ABCX’&&.T.
当SETEXACTOFF
?‘ABCDE’=‘ABC’&&.T.?‘ABC’=‘ABCDE’&&.F.
SETEXACTON
为精确比较,即参加比较的两个字符串必须完全相同,才返回逻辑真值;SETEXACTOFF(默认值)为不精确比较,即右端字符串是左边字符串的左子串时,其值为逻辑真值9/25/202482用于操作逻辑类型的数据,并返回一个逻辑值。
()、NOT或!、AND、OR例:*判断今天是9月4号吗??day(date())=4andmonth(date())=9*判断今天是不是周末??dow(date())=1ordow(date())=75.逻辑运算符与表达式9/25/202483各种运算符之间的优先级为:
算术运算符—>关系运算符—>逻辑运算符,括号可以改变运算顺序。特别注意:运算的数据类型的匹配!例如,设X=2,Y=6,Z=8,则表达式:
X+Y>=ZANDX*Y<2*Z
的值为.T.表达式:
(Y+Z)%3<=XORX**2+3>=Z
的值为.T.9/25/2024846、名称表达式 名称表达式是由圆括号()括起来的字符表达式,它可用来替换命令和函数中的名称。名称表达式的作用详见以下例子:9/25/202485
N=100M=‘N’&&注意不要用中文的引号
STORE123.45TO(M)
用名称表达式替换变量名N
&&注意不能用赋值号=?N&&结果为123.45
实际上对变量N两次赋值。(1)用名称表达式替换变量名9/25/202486
DNAME=‘XS.DBF’USE(DNAME)(2)用名称表达式替换文件名9/25/202487
string1="VISUALFOXPRO6.0" str_var=(string1) &&书上P62有错
?SUBSTR((str_var),1,6)
&&等价于SUBSTR(string1,1,6)&&结果为VISUAL(3)用名称表达式作为函数的参数9/25/202488
DBN=‘JXSJ’DBFN=‘XS’USE(DBN+’!’+DBFN)
&&打开JXSJ!XS(4)用字符表达式构成一个名称表达式9/25/2024897、宏替换 宏替换与名称表达式具有相似的作用,可使用宏替换的方法用内存变量替换名称。在使用宏替换时,将连字符(&)放在变量前,告诉VFP将此变量值当作名称使用,并使用一个句号(.)来结束这个宏替换表达式。9/25/202490(1)宏替换可以替换整个命令,名称表达式不行
AA=“DIR”
&AA&&执行DIR命令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国工程监理行业发展环境分析及投资战略建议报告
- 2024-2030年中国山药产品产业未来发展趋势及投资策略分析报告
- 2024至2030年护肤膏霜项目投资价值分析报告
- 2024-2030年中国实时数据库行业发展模式规划分析报告
- Java内存模型优化策略
- 2024至2030年冲天除尘器项目投资价值分析报告
- 2024年高铝耐火砖项目可行性研究报告
- 2024至2030年中国不干胶商标标识数据监测研究报告
- 2024年中国福可湿性粉剂市场调查研究报告
- 2024年对羟基二苯胺项目可行性研究报告
- 新时代外语教育课程思政建设的几点思考
- 大象版五年级科学上册第四单元《地壳》全部课件(共5课时)
- 石材保温一体板计算书分解
- 企业经营状况问卷调查表
- Unit+7+Careers+Lesson+1+EQ:IQ+课件+-2023-2024学年高中英语北师大版2019+选择性必修第三册
- 沙眼衣原体感染
- 抢救车药物说明书汇编
- 《C语言程序设计》课程思政教学案例(一等奖)
- 2023年大学试题(法学)-著作权法考试参考题库(含答案)
- 绿博园站初步设计说明
- 武汉理工大学计算机网络试题及答案
评论
0/150
提交评论