版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第2章Visual FoxPro中的数据与运算,目 录,上一页,下一页,退 出,2,实验一总结,熟悉VFP的主界面。 工具栏的显示和隐藏方法: 在E:盘下新建你自己的文件夹。 修改默认工作目录: 在你自己的目录中建立一个项目:学生管理; 再新建一个数据库,并在该数据库下创建3个数据库表。 作业:P3436,3,本 章 要 点,2.1 Visual FoxPro的数据类型 2.2 Visual FoxPro的常量与变量 2.3 Visual FoxPro的函数 2.4 Visual FoxPro的表达式,思考题,4,2.2 Visual FoxPro的常量与变量,数据存储容器:把这些供数据存
2、储的常量、变量、数组、字段、记录和对象等称为数据存储容器。 用户利用不同的数据存储容器,实现数据处理的应用。,5,常量: 可直接引用 具有具体值 在整个操作过程中值和表现形式保持不变。 6种类型 数值型常量、浮点型常量、字符型常量、逻辑型常量、日期型常量、日期时间型常量。,2.2.1 常量,6,1数值型常量 由数字、小数点和正负号组成。 表示整数或实数值。 2浮点型常量 以浮点格式(科学记数法)表示的数值常量。 通常表示绝对值很大或很小、而有效位数不太长的一些数。 如:1.3E+9, 其中,1.3称为尾数,表示有效数字,9称为阶码,表示幂指数。 阶码只能是整数,尾数是整数或小数; 尾数与阶码均
3、可正可负。,7,3字符型常量 又称为字符串 由任意ASCII字符、汉字和汉字字符组成的字符型数据 必须加定界符:用双引号、单引号、方括号作为定界符 定界符必须成对匹配、前后一致。 注意与普通字符的区别!当本身包含某种定界符时,应使用另两种定界符。 注意空串与空格串的区别。 举例: 4逻辑型常量 只有真和假两种值,分别用(.t.或.y.)和(.f.或.n.)表示真和假。 一般加圆点符“.” 。,8,5日期型常量 默认格式:mm/dd/yyyy。 如10/01/02和10/01/2002 :表示2002年10月1日 必须用花括号,或用CTOD(“10/12/98”)表示。 6日期时间型常量 默认格
4、式: mm/dd/yyyy , hh:mm:ssa|p 日期值和日期时间值的输入格式与输出格式并不完全相同,用户可进行调整、设置。,9,(1)严格日期格式的设置 严格日期格式:yyyy-mm-dd,hh:mm:ssa|p 有效的分隔符: 默认采用严格的日期格式,会检测,举例: 用户也可设置 命令方式: SET STRICTDATE TO 0 | 1 | 2 0:关闭严格的日期格式检测; 1:设置严格的日期格式检测(默认值),要求所有日期型和日期时间型数据均按严格的格式; 2:设置与1相同,但如果程序代码中出现CTOD()和CTOT()函数时,会出现编译错误。这个设置最适合调试时使用,用来检测2
5、000年兼容性错误; 省略:恢复系统默认值,等价于1的设置。 菜单方式:,10,(2)日期格式中的世纪值 通常用2位数表示年份 设置:命令格式: SET CENTURY ON | OFF | TO nCentury ON:日期数据共显示10位,年份4位。 OFF:(默认值)。日期数据共显示8位,年份2位. TO nCentury:所对应的世纪值。199的整数. 如: SET CENTURY ON SET CENTURY OFF SET CENTURY TO 15,11,(3)设置日期显示格式 命令方式设置,命令格式: SET DATE TO AMERICAN | ANSI | BRITISH
6、| FRENCH | GERMAN | ITLIAN | JAPAN | USA | MDY | DMY | YMD | SHORT | LONG 表2-1 默认为AMERICAN美国格式。 如:SET DATE TO USA 菜单方式设置: 设置日期分隔符:SET MARK TO,12,变量:在操作过程中可以改变其取值或数据类型的数据项。 分为字段变量、内存变量、数组变量和系统变量4类。 此外,对象实质上也是一类变量。 三要素:变量名、数据类型和变量值。 命名约定,2.2.2 变量,13,1字段变量 是定义在表中的变量 是永久性变量 多值变量(注意“当前值”) 字段名就是变量名;变量的数据类
7、型为Visual FoxPro中任意数据类型,字段值就是变量值。 优先级高于同名内存变量,访问后者时用:“M.变量名“或”M-变量名”,14,2内存变量 内存变量:在内存中定义的、一种单个数据元素的临时性变量。 数据类型:数值型、字符型、逻辑型、日期型和日期时间型; 内存变量的建立: 给内存变量赋值。 内存变量赋值既可定义一个新的内存变量,也可改变已有内存变量的值或数据类型。 命令格式: (1) STORE TO 命令功能:计算的值并赋值给各个内存变量。 可同时给多个变量赋值。 (2) = 命令功能:计算的值并赋值给指定内存变量。,15,内存变量的显示输出 命令格式: ?| ? AT ?:先回
8、车换行,再计算并输出表达式的值; ?:在屏幕当前位置,计算并输出表达式的值; AT 子句:指定表达式值从指定列开始显示输出。,16,3数组变量 是一组具有相同名称、以下标相互区分的有序内存变量。 一个数组通常都包含多个数据元素,用数组名和下标访问,下标必须用圆括号对括。 数组下标的起始值是1。 同一数组中的不同元素可有不同的类型,同一数组在不同时刻也可存放不同类型的数据。 各元素初始值均为.F. 引用时,若无下标,则为第一个元素 只允许使用一维数组和二维数组。,17,数组的定义 数组必须先定义后使用。 命令格式: DIMENSION | DECLARE (,) ,(,) 命令功能:定义指定的各
9、个数组。 数组的赋值与引用 与普通内存变量的规则相同。 如:(1)例2-4 (2) decl y(4,7) disp memo like y,18,5系统变量 系统变量是系统特有的内存变量 其变量名均以下划线“_”开始,因此在定义内存变量和数组变量名时,不要以下划线开始,以免与系统变量名冲突。,19,6内存变量与数组变量的基本操作 (1)变量的显示 用?/?命令可以分别显示单个或一组变量的值。 相关命令: 命令格式; DISPLAY | LIST MEMORY LIKE TO PRINTER PROMPT | TO FILE NOCONSOLE 命令功能:显示指定变量的信息。 如:disp m
10、emo(观察系统变量),20,(2)变量的保存 命令格式: SAVE TO ALL LIKE | ALL EXCEPT 功能:将指定变量的信息保存到指定的变量文件(*.MEM)中。,21,(3)变量的恢复 命令格式: RESTORE FROM ADDITIVE 命令功能:将指定变量文件(*.MEM)中变量信息恢复到内存中。 ADDITIVE:省略此项,清除内存所有变量后再恢复文件中变量的信息;加选此项,将变量文件中的变量信息追加到内存现有变量信息中。 (4)变量的清除 命令格式: CLEAR MEMORY RELEASE RELEASE ALL LIKE | EXCEPT 举例:SAVE TO
11、 M1 CLEA MEMO DISP MEMO LIKE Y REST FROM M1 DISP MEMO LIKE Y,22,复习,基本概念:常量、变量(4类:字段变量、内存变量、数组变量和系统变量) 内存变量和数组变量的建立、基本操作(常用命令的使用) 例子:,23,2.3 Visual FoxPro的函数,概念:函数是系统为实现一些特定功能而设置的内部程序代码,用来进行一些特定的运算或操作,支持和完善命令的功能,作为系统的一部分供用户使用。 函数的分类: 函数的基本形式:(操作数表达式) 掌握各函数输入/输出数据类型,24,2.3.1 数值函数 数值函数用于数值运算,其自变量与函数都是数
12、值型数据。 掌握:INT、ROUND、MOD、MAX/MIN、ABS、SQRT、PI、SIGN等 1取绝对值函数ABS( ) 【格式】ABS() 【功能】计算nExp的值,并返回该值的绝对值。 2指数函数EXP( ) 【格式】EXP() 【功能】求以e为底、nExp值为指数的幂,即返回ex的值。 3取整函数INT( ) 【格式】INT() 【功能】计算nExp的值,返回该值的整数部分。,25,4上界函数CEILING( ) 【格式】CEILING() 【功能】计算nExp的值,返回一个大于或等于该值的最小整数。 5下界函数FLOOR( ) 【格式】FLOOR() 【功能】计算nExp的值,返回
13、一个小于或等于该值的最大整数。 6自然对数函数LOG( ) 【格式】LOG() 【功能】求nExp的自然对数。nExp的值必须为正数。 7常用对数函数 【格式】LOG10() 【功能】求nExp的常用对数。nExp的值必须为正数。,26,8平方根函数SQRT( ) 【格式】SQRT() 【功能】求非负nExp的平方根。 9最大值函数MAX( )和最小值函数MIN( ) 【格式】MAX(,.) MIN(,.) 【功能】返回数值表达式中的最大值MAX( )和最小值MIN( )。 例:MAX(1/12/01,2/12/03) MAX(1/12/01,2/12/03) 10求余数函数MOD( ) 【格
14、式】MOD(,) 【功能】返回nExp1除以nExp2的余数。余数的小数位数与nExp1相同,符号与nExp2相同。,27,11四舍五入函数ROUND( ) 【格式】ROUND(,) 【功能】返回nExp1四舍五入的值, nExp2表示保留的小数位数。 例题:214 12函数PI( ) 【格式】PI( ) 【功能】返回常量的近似值 13正弦函数SIN( ) 【格式】SIN() 【功能】返回nExp的正弦值。nExp以弧度为单位,函数值域为-1,1。 14余弦函数COS( ) 【格式】COS() 【功能】返回nExp的余弦值。nExp以弧度为单位,函数的值域为-1,1。,28,15正切函数TAN
15、( ) 【格式】TAN() 【功能】返回nExp的正切值。nExp以弧度为单位,其值为/2或- /2时,系统返回一个绝对值很大的数。 16反正弦函数ASIN( ) 【格式】ASIN() 【功能】返回nExp的反正弦值。自变量值必须在-1,1内,函数值为弧度,且值域为-/2, /2。 17反余弦函数ACOS( ) 【格式】ACOS() 【功能】返回nExp的反余弦值。自变量的值必须在-1,1内,函数值为弧度,值域为-/2, /2。 18反正切函数ATAN( ) 【格式】ATAN() 【功能】返回nExp的反正切值。函数值为弧度,值域为(-/2, /2)。,29,2.3.2 字符函数 字符函数是处
16、理字符型数据的函数,其自变量或函数值中至少有一个是字符型数据。函数中涉及的字符型数据项,均以cExp表示。 1子串位置函数 【格式】AT(,) 【功能】返回串cExp1在串cExp2中的起始位置。函数值为整数。如果串cExp2不包含串cExp1,函数返回值为零。,30,2取左子串函数LEFT( ) 【格式】LEFT(,) 【功能】返回从cExp串中第一个字符开始,截取nExp个字符的子串。 3取右子串函数RIGHT( ) 【格式】RIGHT(,) 【功能】返回从cExp串中右边第一个字符开始,截取nExp个字符的子串。有关说明同LEFT( )函数。 4取子串函数SUBSTR( ) 【格式】SU
17、BSTR (, , ) 【功能】返回从串cExp中第nExp1个字符开始,截取nExp2个字符的子串。 例:221,31,5字符串长度函数LEN( ) 【格式】LEN() 【功能】返回cExp串的字符数(长度)。函数值为N型。 6删除字符串前导空格函数LTRIM( ) 【格式】LTRIM() 【功能】删除cExp串的前导空格字符。 7删除字符串尾部空格函数RTRIM( ) | TRIM( ) 【格式】RTRIM | TRIM() 【功能】删除cExp串尾部空格字符。 ALLTRIM:删除前导空格和尾部空格。 8空格函数SPACE( ) 【格式】SPACE () 【功能】返回一个包含nExp个空
18、格的字符串。,32,9字符串替换函数STUFF( ) 【格式】STUFF(,) 【功能】从nExp1指定位置开始,用cExp2串替换 cExp1串中nExp2个字符。 例:226 10字符复制函数 REPLICATE( ) 【格式】REPLICATE (,) 【功能】返回将cExp串重复nExp次的字符串。 11定义输出格式函数 TRANSFORM( ) 【格式】TRANSFORM (,) 【功能】按格式描述式cExp指定的格式,输出任意表达式eExp的值。,33,12大小写转换函数LOWER( ) 和UPPER( ) 【格式】LOWER () UPPER () 【功能】LOWER( )将cE
19、xp串中字母全部变成小写字母,UPPER( )将cExp串中字母全部变成大写字母,其它字符不变。 13宏替换函数 & 【格式】& . 【功能】替换出字符型变量cVar中字符。 不能为数组变量 宏代换作用的变量名与其他字符用“.” 分开 替换后已去掉了定界符 可嵌套,但不能递归调用 可改变数据类型 替换是间接的,34,如:例2-30,31 (1) A=“DATE()” B=“A” ?&B,&A (2) X=.F. ?TYPE(X) N=32 .AND. &X ?N ?TYPE(N),35,2.3.3 日期时间函数 日期时间函数是处理日期型或日期时间型数据的函数。其自变量为日期型表达式dExp或日
20、期时间型表达式tExp。 1系统日期函数DATE( ) 【格式】DATE() 【功能】返回当前系统日期,此日期由Windows系统设置。函数值为D型。 2系统时间函数TIME( ) 【格式】TIME() 【功能】返回当前系统时间,时间显示格式为hh:mm:ss。若选择了nExp ,则不管为何值,返回的系统时间还包括秒的小数部分,精确至小数点后两位。函数值为C型。,36,3日期函数DAY( ) 【格式】DAY() 【功能】返回dExp式中的天数。函数值为N型 4星期函数DOW( )、CDOW( ) 【格式】DOW() CDOW() 【功能】DOW( )函数返回dExp式中星期的数值,用17表示星
21、期日星期六。函数值为N型。CDOW( ) 函数返回dExp式中星期的英文名称。函数值为C型。 5月份函数MONTH( )、CMONTH( ) 【格式】MONTH() CMONTH() 【功能】MONTH( )函数返回dExp式中月份数。函数值为N型。CMONTH( )函数则返回月份的英文名。函数值为C型。 6年份函数YEAR( ) 【格式】YEAR() 【功能】函数返回dExp式中年份值。函数值为N型。,37,2.3.4 转换函数 在数据库应用的过程中,经常要将不同数据类型的数据进行相应转换,满足实际应用的需要。Visual FoxPro系统提供了若干个转换函数,较好地解决了数据类型转换的问题
22、。 1ASCII码函数ASC( ) 【格式】ASC () 【功能】返回cExp串首字符的ASCII码值。函数值为N型。 2ASCII字符函数CHR( ) 【格式】CHR() 【功能】返回以nExp值为ASCII码的ASCII字符。函数值为C型。,38,3字符日期型转换函数CTOD( ) 【格式】CTOD() 【功能】把“/”格式的cExp串转换成对应日期值。函数值为D型。 4日期字符型转换函数DTOC( ) 【格式】DTOC(, 1) 【功能】把日期dExp转换成相应的字符串。函数值为C型。 例:240 5数值字符型转换函数STR( ) 【格式】STR(,) 【功能】将nExp1的数值转换成字
23、符串形式。函数值为C型。 例:241 6字符数值型转换函数VAL( ) 【格式】VAL () 【功能】将cExp串中数字转换成对应数值,转换结果取两位小数。函数值为N型。,39,2.3.5 测试函数 1数据类型函数TYPE( ) 【格式】TYPE() 【功能】返回cExp 串表示的数据对象的数据类型,返回值是一个表示数据类型的大写字母。C:字符型,D:日期型,N:数值型,L:逻辑型,M:备注型,G:通用型,U:未定义。 注:(1) TYPE( ):参数须用定界符 (2)TYPE 与VARTYPE的区别 例: ?type(02/2/01) ?vartype(02/2/01) ?type(02/2
24、/01) ?vartype(02/2/01) 2文件查找函数FILE() 【格式】FILE() 【功能】根据cExp串中指定路径查找文件,文件存在,返回逻辑真(.T.) 值,否则为逻辑假(.F.)值。 注:参数须用定界符,40,3条件测试函数IIF( ) 【格式】IIF(,) 【功能】逻辑表达式lExp值为真(.T.),返回表达式eExp1的值,否则返回表达式eExp2的值。 4表结束标志测试函数EOF( ) 【格式】EOF( | ) 【功能】测试记录指针是否移到表结束处。如果记录指针指向表中尾记录之后,函数返回真(.T.),否则为假(.F.)。 注:(1)当EOF()为.T.时,RECNO(
25、)=RECOUNT()+1 (2)最后一条记录时, EOF()为.F. 5表起始标识测试函数BOF ( ) 【格式】BOF ( | ) 【功能】测试记录指针是否移到表起始处。如果记录指针指向表中首记录前面,函数返回真(.T.),否则为假(.F.)。工作区说明见EOF()函数。 注:(1)当BOF()为.T.时,RECNO()=1,41,6当前记录号函数RECNO() 【格式】RECNO( | ) 【功能】返回指定工作区中表的当前记录的记录号。对于空表返回值为1。 7当前记录逻辑删除标志测试函数DELETED( ) 【格式】DELETED( | ) 【功能】测试指定工作区中表的当前记录是否被逻辑
26、删除。如果当前记有逻辑删除标记,函数返回真(.T.),否则为假(.F.)。 8记录数函数RECCOUNT( ) 【格式】RECCOUNT ( | ) 【功能】返回指定工作区中表的记录个数。如果工作区中没有打开表则返回0。 9记录大小测试函数RECSIZE( ) 【格式】RECSIZE( | ) 【功能】返回指定工作区中表的记录总长度。如果工作区中没有打开表则返回0。,42,10屏幕列坐标和行坐标函数 COL( )、ROW( ) 【格式】COL ( ) ROW() 【功能】COL ( )返回光标的列坐标值,ROW ( )返回光标的行坐标值。 11打印机列坐标和行坐标函数PCOL( ),PROW(
27、 ) 【格式】PCOL( ) PROW() 【功能】返回打印机打印头所处位置的列坐标和行坐标。,43,2.4 Visual FoxPro的表达式,表达式:是由常量、变量、函数及其他数据容器单独或与运算符组成的有意义的运算式子。 运算符:是对数据对象进行加工处理的符号,根据其处理数据对象的数据类型,运算符分为算术(数值)运算符、字符运算符、日期时间运算符、逻辑运算符和关系运算符五类.,44,各类运算的优先顺序如下: 圆括号算术和日期运算字符串运算关系运算逻辑运算,45,2.4.1 算术表达式 算术表达式又称数值表达式,其运算对象和运算结果均为数值型数据。数值运算符的功能及运算优先顺序,如表2-2
28、所示。表中运算符按运算优先级别从高到低顺序排列。 表2-2 算术运算符,例:247,46,2.4.2 字符表达式 表2-3:字符运算符的功能。 “+”与 “-”:都是字符连接运算符,都将两字符串顺序连接,但“+”是直接连接,“-”则将串1尾部所有空格移到串2尾部后再连接; “$”:比较两个串的包含关系。 例:248,47,表2-3 字符运算符 两个连接运算的优先级别相同,但高于$的比较运算。,48,2.4.3 日期表达式 日期运算符:“+”和“-”两种。 其作用分别是在日期数据上增加或减少一个天数,在日期时间数据上增加或减少一个秒数。两个运算的优先级别相同。 仅有三种用法: 日期-日期=数值(天数) 日期+数值=日期 日期-数值=日期 例:,49,2.4.4 关系表达式 由关系运算符连接两个同类数据对象进行关系比较的运算式称为关系表达式。 关系表达式的值为逻辑值,关系表达式成立则其值为“真”,否则为“假”。 表2-4 关系运算符,50,关系运算符的优先级别相同。 日期或日期时间数据以日期或时间的先后顺序为序。 (1)单个字符 单个字符的比较是以字符ASCII码的大小,作为字符的“大小”,也就是先后顺序;,51,(2)字符串 两个字符串进行比较的基本原则是从左到右逐个字符进行比较,但因系统相关设置状态不同,比较的结果与预期的不完全相同。 相等比较:用运算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 9437-2026耐热铸铁件
- gps安装外包合同
- 三个月外包合同
- 中国平安签外包合同
- 临时人员外包合同
- 亚信安全签外包合同
- 人员劳务外包合同
- 保洁洗碗工外包合同
- 便利蜂员工外包合同
- 修理外包合同
- 西藏自治区日喀则市2026届高三第二次模拟考试语文试卷含解析
- 2026年酒店住宿O2O线上线下融合的预订与入住体验
- 辽宁省能源集团招聘笔试题库2026
- 管道拆除安全措施方案
- 成人2型糖尿病口服降糖药联合治疗专家共识(2025版)课件
- 英语北京市昌平区2026年高三年级第一次统一练习(昌平高三一模)(4.7-4.10)
- 2026成都市八年级语文下册部编版期末考试卷含答案
- 便利店工作制度详细流程
- 村干部工作考勤制度
- 2025山东威海乳山市人民医院公开招聘急需紧缺专业人才10人笔试历年典型考题及考点剖析附带答案详解试卷2套
- 建设养牛场合同协议书
评论
0/150
提交评论