




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章VisualFoxPro的数据及其运算,VisualFoxPro的数据类型VisualFoxPro的常量与变量VisualFoxPro的运算符与表达式VisualFoxPro的常用内部函数,2.1VisualFoxPro的数据类型,2.1VisualFoxPro的数据类型数据是计算机加工处理的对象。数据记录了现实世界中客观事物的属性,包括数据内容和数据形式两方面。数据内容就是数据的值,数据形式是数据的存储形式和操作方法,即数据类型。与其他计算机高级语言一样,VisualFoxPro也涉及了诸如数据类型、常量、变量、数组、运算符、表达式和函数等基本概念。VisualFoxPro中,根据数据的存在形式,数据可分成程序中和数据库中两类。允许使用的数据类型种类略有所不同。,2.1VisualFoxPro的数据类型,2.1VisualFoxPro的数据类型,2.1VisualFoxPro的数据类型,2.2VisualFoxPro常量与变量,2.1.2常量无论是对数据库进行操作,还是进行一般的程序设计,都会经常用到固定不变数据常量。VisualFoxPro6.0常量有如下6种类型。(1)数值型常量是可以进行算术运算的整数和小数型数字。例如,100、-88、3.14159、1.23E6、2.34E-4(2)字符型常量是用定界符双引号(”)、单引号()或中括号()括起来的计算机能够接受并识别的字符串(由中文、英文、数字、空格和其他可打印的符号组成),当字符型数据本身包含由某种定界符,应当使用另外一种定界符定界整个数据。例如,“VisualFoxPro”、青岛大学、1200,2.2VisualFoxPro常量与变量,(3)逻辑型常量用.T.表示逻辑“真”,用.F.表示逻辑“假”。(4)日期型常量用花括号括起来,表示某一具体的日期。默认的格式是:yyyy-mm-dd或yyyy/mm/dd例如,1998-10-01、/、1998/03/8等。(5)日期时间常量用来表示日期和时间者兼有时的数据。例如,2003-2-26,10:5:10、2003-2-2610:5p等。(6)货币型常量用“$”加上数值表示货币值。例如,$1200.00。,2.2VisualFoxPro常量与变量,2.1.3变量变量是指程序在运行过程中其值可能会发生变化的量。变量是程序的基本单元,在VisualFoxPro系统中,变量分为字段变量、内存变量、数组变量、系统变量和对象变量等。1、字段变量字段变量是在数据表中定义的变量,随着表的打开而自动生成,字段变量的变量名即表中字段的字段名,随着表的关闭而自动清除。字段变量的值取决于当前打开表中的当前记录,随着表中当前记录的变化而改变。,2.2VisualFoxPro常量与变量,2、内存变量内存变量是用户通过命令或在程序中临时定义的变量,每个变量对应系统内存的一段存储空间,内存变量的值由其所对应的内存空间里所存放的数据所决定。与其他高级语言不同的是变量不需要事先说明其类型,其数据类型由当前所存储数据的类型决定。但必须首先给所需要使用的内存变量赋一个值,变量才可以使用,否则系统会提示内存变量没有找到的信息。内存变量有数值型、字符型、逻辑型、货币型、日期型和时间型6种。,2.2VisualFoxPro常量与变量,3、变量的命名内存变量的命名规则:字母、汉字和下划线开头,后跟若干个字符,长度不超过128个字符,不区分大小写。4、变量建立与赋值(1)=例如:nSum=12*3cNumber=”编号”(2)STORETO例如:STORE3*6TOA1,A25、变量的引用通过变量名引用,但是必须先定义;若与字段变量同名,则加上前缀M.或M-。,2.2VisualFoxPro常量与变量,6、数组变量数组实际上是一组内存变量的集合,每个数组元素就相当于一个内存变量。同一数组的数组元素可以是不同的数据类型,并可以在运行过程中发生改变。数组元素的引用主要是通过数组元素的下标来进行的。数组元素的数据类型同内存变量。例如:A(1),A(2),A(10)维数:VFP6.0只支持1维和2维数组,2.2VisualFoxPro常量与变量,(1)数组的定义语句格式如下:DIMENSION|DECLARE(,),(,)例如:DIMENSIONA(10),C(3,4)(2)数组的赋值和引用赋值同内存变量数组名(下标1,下标2)例如:DECLAREA(5),B(2)STORE5TOAB(1)=201B(2)=”张三”?A(1)+A(4),B(1),B(2),2.3运算符与表达式,2.1运算符各种类型的常量和变量构成数据处理的基础,而对数据的处理最终要通过表达式、函数和命令来实现。将常量、变量和函数用运算符连接起来,具有一定含义、合法的式子,称为表达式。运算符是联系数据的纽带,指定了对数据进行那种处理运算。根据操作数类型的不同,运算符可分为算术运算符、字符运算符、日期时间运算符、关系运算符、逻辑运算符等。下表列出了VisualFoxPro系统中最常见的操作符。,1、算术运算符,2、字符运算符,3、日期时间运算符,4、关系运算符,5、逻辑运算符,逻辑运算符用于进行逻辑型数据的处理,运算结果仍为逻辑型,下表列出了逻辑运算符及优先级,2.3运算符与表达式,逻辑运算规则,2.3运算符与表达式,2.2表达式表达式是VisualFoxPro中进行数据处理的重要手段。无论是在程序中还是在命令中,表达式具有运算功能,合法的表达式通过系统的计算会等到一个计算结果。根据表达式所处理的对象,表达式分为数值表达式、字符表达式、日期表达式、日期时间表达式、逻辑表达式。注意:单个的常量、变量、数组元素和函数本身是最简单的表达式。,2.3运算符与表达式,注意以下几点:(1)若在一个表达式中含有多种运算符,书写表达式时需要注意它们的优先顺序,VisualFoxPro6.0运算符的优先顺序下所示:算术运算符字符运算符比较运算符逻辑运算符(2)若同类型的多个运算符同时出现在表达式中,则遵循各自的优先规则;若优先规则相同,则按照其在表达式中出现的先后顺序从左到右依次进行。(3)若需要改变表达式中运算符的优先顺序,则需要使用括号“()”。即括号内的运算总是优先于括号外的运算。括号之内的运算符优先顺序不变。,2.3运算符与表达式,2.3常用内部函数VisualFoxPro中的内部函数实际上是把进行数据处理过程中经常用到的一系列需要操作需预先编制好的程序代码,随系统提供,可供VisualFoxPro程序、表达式、命令中根据进行调用,极大地增强了系统的功能。函数的一般形式如下所示:函数名(,每个函数必须有一个函数名,且函数名后面必须跟一对圆括号,括号中可以有0n个参数。函数根据用户所给定的参数,经过计算返回(得到)一个唯一的值,称为返回值。VisualFoxPro6.0提供了大量的内部函数。按功能内部函数可分为数值函数、字符函数、日期时间函数、类型转换函数和测试函数等类型。,2.4VisualFoxPro常用函数,2.1数值处理函数数值处理函数主要完成数值型处理与数值计算的操作,数值处理类函数返回值一般为数值型,常用的数值函数有:1、平方根函数SQRT()【格式】SQRT()【功能】首先计算数值表达的值,然后求表达式值的平方根并将其作为函数的返回值。【说明】表达值的值必须为正数。【例】?SQRT(24-8)&显示结果为:4.00,2.4VisualFoxPro常用函数,2、取对值函数ABS()【格式】ABS()【功能】计算数值表达式值并返回数值表达式的绝对值。【例】A=10B=30?ABS(2*A-B)&显示结果为:103、取整函数INT【格式】INT()【功能】计算数值表达式并返回数值表达式值整数部分。【例】?INT(28.48*2)&显示结果为:56?INT(-56.98)&显示结果为:-56,2.4VisualFoxPro常用函数,4、四舍五入函数ROUND()【格式】ROUND(,)【功能】按小数位数的规定对数值表达式的值进行四舍五入处理。【说明】(1)返回指定的在指定位置四舍五入后的结果。(2)指定四舍五入的位置。若大于等于0,那么它表示的是要保留的小数位数;若小于0,那么它表示的是正数部分的舍入位数。【例】?ROUND(1234.8654,2)&显示结果为:1234.87?ROUND(1234.8654,0)&显示结果为:1235?ROUND(1234.8654,-2)&显示结果为:1200,2.4VisualFoxPro常用函数,5、取余数函数MOD()【格式】MOD(,)【功能】返回两个数相除后的余数。【说明】是被除数,是除数。余数的正负号与除数相同。若被除数与除数同号,则函数值即为两个数相除的余数;若被除数与除数异号,则函数值即为两个数相除的余数再加上除数的值。【例】?MOD(3*4,7)&显示结果为:5?MOD(7,-2)&显示结果为:-16、圆周率函数PI()【格式】PI()【功能】返回圆周率(数值型)。【例】计算半径为2的圆面积:?2*2*PI()&显示结果为:12.5664?22*3.14&显示结果为:12.56,2.4VisualFoxPro常用函数,例1:?Mod(25,7),Mod(25,-7),Mod(-25,7),Mod(-25,-7)-33-4例2:X=521X1=Int(x/100)X2=Int(Mod(x,100)/10)X3=Mod(x,10)?x1+x2*10+x3*100,7、最大值函数MAX()【格式】MAX(表达式1,表达式2,表达式n)【功能】计算各表达式的值,并且返回其中的最大值【说明】表达式1、表达式2、类型可以是数值型(N)、日期型(D)或字符型(C),但所有表达式的类型必须相同。【例】?MAX(12,45,76,3)&显示结果为:76?MAX(1999/12/01,1998/12/01)?MAX(“1”,“9”,”a”,“z”)&显示结果为:z(根据asc码)8、最小值函数MIN()【格式】MIN(表达式1,表达式2,表达式N)【功能】计算各表达式的值,并且返回表达式中的最小值。【例】?MIN(12,45,76,3)&显示结果为:3?MIN(1999/12/01,1998/12/01)?MIN(“1”,“9”,”a”,“z”)&显示结果为:1,2.4VisualFoxPro常用函数,2.4VisualFoxPro常用函数,9.求指数函数EXP()【格式】EXP()【功能】将的值为x,求ex的值例如:?exp(2)+1&结果为8.39注:e2+1e=2.7182810.求对数函数LOG()/LOG10()【格式】LOG()LOG10()例如:?log(2.71828)+log10(100)&结果为3注:Log(2.71828)=1log10(100)=2,3.3.2字符处理函数1、子字符串查找函数AT|ATC()【格式】AT|ATC(,)【功能】返回在中第次出现的位置。【说明】若是的子串,则返回中的首字符在中的位置;若不是的子串,则函数返回0。ATC与AT的功能类似,区别在于ATC函数不区分字母的大小写,返回值亦为数值型。缺省时,系统默认为1。,2.4VisualFoxPro常用函数,【例】?AT(as,Assoonaspossible)&显示结果为:9?AT(青大,青岛大学商学院)&显示结果为:0?AT(s,Assoonaspossible,2)&显示结果为:4?AT(学,青岛大学商学院,2)&显示结果为:11?ATC(as,Assoonaspossible,2)2、字符串长度测试函数LEN()【格式】LEN()【功能】返回字符表达式的长度值,即所包含的字符个数(字节数),函数的返回值为数值型。【例】?LEN(VisualFoxPro6.0)&显示结果为:17?LEN(青岛大学)&显示结果为:8,2.4VisualFoxPro常用函数,3、截取子字符串函数SUBSTR()【格式】SUBSTR(,)【功能】从中的位置开始取出个字符,函数的返回值为字符型数据,即字符串。【说明】参数和以字节为单位。如果缺省,则返回从位置开始到最后的所有字符。【例】?substr(“青岛大学”,3,2)&显示结果为:岛(从第三个字符开始取两个?substr(Qingdao,3,2)&显示结果为:ng注:一个汉字表示两个字符,拼音是一个。,2.4VisualFoxPro常用函数,4、左取或右取子字符串函数LEFT()|RIGHT()【格式】LEFT|RIGHT(,)【功能】从最左边或最右边开始取出含有指定字符个数的子字符串,函数返回值为字符型数据。【说明】参数以字节为单位若的值大于的长度,返回;若的值0,则返回空字符串。【例】?left(“青岛大学”,2)&显示结果为:青?left(Qingdao,2)&显示结果为:Qi?right(“青岛大学”,2)&显示结果为:学,2.4VisualFoxPro常用函数,5、删除前导和尾随空格函数【格式】LTRIM|RTRIM|TRIM()【功能】LTRIM删除的前导空格,返回值仍为字符型;RTRIM|TRIM删除的尾部空格,返回值仍为字符型。【例】?“1”+LTRIM(“2”)+“3“&显示结果为:123?1+RTRIM(2)+3&显示结果为:1236、删除前导和尾随空格ALLTRIM()【格式】ALLTRIM()【功能】删除的前导和尾部空格。【例】?1+ALLTRIM(2)+3“&显示结果为:123,2.4VisualFoxPro常用函数,7、产生空格字符串函数SPACE()【格式】SPACE()【功能】返回个空格字符串。【例】?1+SPACE(2)+3&显示结果为:138、大小写转换函数UPPER|LOWER()【格式】UPPER()【功能】UPPER将中的小写字母转换为大写字母,LOWER将中的大写字母转换为小写字母。【例】?upper(“Visual”)&显示结果为:VISUAL?lower(“FoxPro”)&显示结果为:foxpro,2.4VisualFoxPro常用函数,2.4VisualFoxPro常用函数,9.字符串替换函数STUFF()【格式】STUFF(,,)【功能】用去替换中由起始位置开始指定的若干个字符。起始位置和字符个数分别由和指定。例如:STORE“青岛大学”TOX?STUFF(X,3,2,”华”)10.产生重复字符函数REPLICATE()【格式】REPLICATE(,)例如:?REPLICATE(“*”,8),2.3.3日期及日期时间类函数【格式】DATE()返回当前系统日期,函数值为日期型。【格式】TIME()返回当前系统时间(24小时制),函数值为字符型。【格式】DATETIME()返回当前系统日期和时间,函数值为日期时间型。【格式】YEAR(|)【格式】MONTH(|)【格式】DAY(|),2.4VisualFoxPro常用函数,2.3.4数据类型转换类函数1、字符转换为数值函数VAL()【格式】VAL()【功能】将转换为数值型数据。【说明】VAL函数按从左到右的顺序处理字符表达式,直到遇到一个非数值字符(不包括科学计数指示符E)。如果中的第一个字符不是数字,VAL函数将返回数值0。【例】?VAL(3.1415926PI36)&显示结果为:3.14?VAL(3.1415926e36)&结果为:3.14159260E+36?VAL(a36)&显示结果为:0.00,2.4VisualFoxPro常用函数,2、数值转换为字符【格式】STR(,)【功能】把的值转换为字符型,即字符串。【说明】的值决定转换后的字符串总长度(包括小数点),决定转换时要保留的小数位数。如果的值大于的实际长度,则在数字串左边补充空格。如果小于的实际长度,但大于等于的整数部分(包括负号)的长度,则优先满足整数部分而自动调整小数部分(四舍五入)。,2.4VisualFoxPro常用函数,若值小于的整数部分长度,则函数将输出星号“*”。若缺省或同时缺省和,则函数只转换整数部分(包括负号)。【例】?STR(356.14159,8,4)&显示结果为:356.1416?STR(356.14159,14,4)&显示结果为:356.1416?STR(356.14159,5,4)&显示结果为:356.1?STR(356.14159,2,4)&显示结果为:*?STR(-356.14159,8)&显示结果为:-356?STR(-356.14159)&显示结果为:-356,2.4VisualFoxPro常用函数,3、字符型转换为日期型函数【格式】CTOD()【功能】把转换为日期型数据。【说明】的格式可以是:“YY/MM/DD”、“YY-MM-DD”、“YY.MM.DD”,年份可以带有世纪,也可不带有世纪。如果年份可以不带世纪,默认为当前世纪。【例】?year(CTOD(“1999/10/13”)&显示结果为:1999注:year代表光取年份,2.4VisualFoxPro常用函数,4、日期型转换为字符型DTOC【格式】DTOC(|,1)【功能】把或中的日期转换为字符串。【说明】缺省可选项1时,函数返回的字符格式为“MM/DD/YY”。若设置了显示世纪(使用SETCENTURYON命令),则年份用4位表示。选择可选项1时,返回的字符格式为“YYYYMMDD”。【例】?DTOC(2002/12/27)&显示结果为:12/27/02?DTOC(2002/12/2715:20:38)&显示结果为:12/27/02?DTOC(2002/12/27,1)&显示结果为:20021227,2.3.5其他函数除了前面介绍的几种类型的函数外,VisualFoxPro中其他常用的函数有逻辑函数IIF()、宏代换函数、文件操作函数、信息显示函数、空值测试函数等。1、逻辑函数IIF()【格式】IIF(,)【功能】根据逻辑表达式的值,返回和值中的某一个。【说明】指定了要计算的逻辑表达式。若其值为.T.,则返回的值,否则返回的值。函数的返回值的类型可以是字符型、数值型、货币型、日期型或日期时间型等,取决于或的类型。,【例】x=5y=7z=IIF(xy,x-y,y-x)?z&显示结果为2,2、宏替换函数【格式】&.【功能】替换出字符型变量的内容,即&的值是变量中的字符串。宏替换函数对实现程序的自动生成和自动变换非常有用。,2.4VisualFoxPro常用函数,【说明】“&”的作用是将字符型内存变量(包括数组元素)的内容替换出来,它的返回值的类型于字符型内存变量的值去掉字符定界符后的值的类型一致,可以是各种数据类型。若宏替换函数与其后的字符无明确分界,则要用“.”作函数结束标记,并且宏替换可以嵌套使用。,【例】cName=”李小明”XM=”cName”?&XM+”你好!”&相当于cName+”你好!”c_nVar=”254”?&c_nVar+6&相当于254+6cVar=”F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河北-河北房管员一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-江西-江西环境监测工五级(初级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江西-江西垃圾清扫与处理工五级(初级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江苏-江苏电工三级(高级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-新疆-新疆计算机操作员一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西水利机械运行维护工四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东计算机操作员四级(中级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东水工闸门运行工二级(技师)历年参考题库含答案解析
- 烹饪肉基础知识培训课件
- 2025年中级卫生职称-主管护师-社区护理(中级)代码:373历年参考题库典型考点含答案解析
- GA/T 954-2011法庭科学工具痕迹中凹陷痕迹的检验规范
- DB1331T004-2022雄安新区数据安全建设导则
- 环水保工程监理细则
- DB11-T1834-2021 城市道路工程施工技术规程高清最新版
- 穴位敷贴中医护理技术操作规范
- 冷却塔投标文件
- 手工电弧焊焊接头基本形式与尺寸
- 开拓进取:零碳汽车的材料脱碳之路
- (完整版)自我护理能力量表ESCA
- M2激光模式测量
- 网吧企业章程范本
评论
0/150
提交评论