VisualFoxpro数据基础.ppt_第1页
VisualFoxpro数据基础.ppt_第2页
VisualFoxpro数据基础.ppt_第3页
VisualFoxpro数据基础.ppt_第4页
VisualFoxpro数据基础.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,大纲要求: P1 Visual FoxPro 数据元素 1)常量 数值型(N)、字符型(C)、逻辑型(L)、日期型(D)、日期时间型(T) 2)变量 字段变量 内存变量:定义、赋值、保存与恢复 数组:定义、赋值、引用 3)表达式 类型及运算顺序,第三章 Visual Foxpro数据基础,大纲要求: P2 4)常用函数 (1)数值计算 ABS()、INT()、SQRT()、MAX()、 MIN()、ROUND()、 &、MOD()等 (2)字符处理 ALLTRIM()、SUBSTR()、LEFT()、 RIGHT()、LEN()、AT()、SPACE()等 (3)日期类 DATE()、TIME()、DAY()、DOW()、 MONTH()、YEAR()等 (4)类型转换 CTOD()、DTOC()、VAL()、STR() (5)测试 BOF()、EOF()、FOUND()、RECNO()、 SELECT()、DELETE() (6)其它 ROW()、COL()、TYPE()、INKEY()、READKEY(),第三章 Visual Foxpro数据基础,第三章 Visual FoxPro的数据基础,3.1 数据类型,3.2 常量,3.4 运算符及表达式,3.5 函数,3.3 变量,1. 字符型数据,字符型数据(Character)是指用各种文字字符表示的数据,包括26个英文大小写字母、10个阿拉伯数字、各种汉字、专用符号和空格等,最大长度可达254个字符。 注意:如果将阿拉伯数字定义为字符型数据时,它不具备数学上的数值含义,不能参加数学运算,如电话号码,邮编等。,2. 数值型数据,数值型数据(Numeric)是指可以进行算术运算的数据,包含09的阿拉伯数字、小数点与正负号,最大长度为20位。在内存中,数值型数据占用8个字节。一般将需要参加数学运算的数据定义成数值型。,3.1 数据类型,3. 整型数据,整型数据(Integer)是不包含小数点部分的数值型数据,以二进制形式存储,占用4个字节。,4. 浮点型数据,浮点型数据(Float)是数值型数据的一种,在存储形式上采取浮点格式。它由尾数、阶数及字母E组成。,5. 双精度型数据,双精度型数据(Doub1e)是具有更高精度的数值型数据,占用8个字节的存储空间。,6. 货币型数据,货币型数据(Currency)装入表示货币量的数据,占用8个字节。,7. 逻辑型数据,逻辑型数据(Logic)是用来进行各种逻辑判断的数据,只有两个值,即真(.T.)和假(.F.),长度固定为1位,占用1个字节。,日期型数据(Date)是用来专门表示日期的数据。 存储格式为“YYYYMMDD”,共占用8个字节。,8. 日期型数据,9. 日期时间型数据,日期时间型数据(Date Time)是描述日期和时间的数据。其字符存储格式为“YYYYMMDDHHMMSS”,保存在两个4字节的整数中。 日期设置的几条命令: Set mark to 日期分隔符 &日期分隔符 要加定界符 Set date to 短语 &P43 Set century on/off Set strictdate to 0/1/2,10. 备注型数据,备注型数据(Memo)用于存放数据较长的字符型数据类型,固定占用4个字节的内存空间,用来存放Visual FoxPro的内部指针,实际的数据存放在与数据表文件同名的.FPT文件中,并且所存放的内容只受磁盘空间的限制。,11. 通用型数据,通用型数据(General)用于存储OLE(Object Linking and Embedding)对象,只能用于数据表中字段的定义。该字段包含了对OLE对象的引用,而OLE对象的具体内容可以是一个电子表格、文档、图片等。通用型数据长度固定为4位,实际数据长度仅受磁盘空间的限制。,(1)字符型常量:用定界符(单引号、双引号和方括号) 括起来的字符串。 (示例:“ade” 568 book “book的中文意思是书。”) (2)数值型常量(示例:538,-10.5) (3)浮点型常量(示例:-1.05E+20) (4)日期型常量:表示一个确切的日期,用大括号作为定界符,默认格式为mm/dd/yy。 严格的日期格式:YYYY-MM-DD (示例:05/23/99,2001-08-16) (5)逻辑型常量(示例:.t. .T. .f. .F. .Y. .N. .y. .n.) (6)日期时间型常量(示例:05/16/99 12:00:00),3.2 常量,3.3 变量,1. 字段变量,变量:在使用过程中其值可以改变的量。包括字段变量、内存变量、数组变量和系统内存变量。,(1)字段变量隶属于数据表文件。 (2)数据表是存在于计算机中的一个二维表格,数据表中的每一列称为一个字段,是数据表进行数据处理的基本单位;数据表中的每一行内容称为一条记录,由若干个相关联的字段组成。 (3)在数据表中,字段必须先定义后赋值,然后才可以使用。 (4)字段变量名由汉字、字母、数字和下划线组成,必须以字母或汉字开头。 (5)字段变量的数据类型有13种,与前面的数据类型相同。,2. 内存变量,(1)内存变量:存在于内存中的变量,常被用来存储所需要的常数、中间结果或最终结果。变量名由汉字、字母、数字和下划线组成,必须由字母或汉字开头。 (2)当内存变量名与字段变量名相同时,字段名优先于内存变量名,使用时可以在内存变量名前加上“M.”以示区别,但赋值时不能使用该前缀。,1)建立内存变量,格式:STORE TO 或 = 示例: B=6 STORE B+3 TO C STORE “中国” TO A,B,C,格式:LIST / DISPLAY MEMORY LIKE TO PRINTER / TO FILE 说明:通配符指“?”和“*” 的扩展名为.TXT LIST和DISPLAY区别为:LIST连续显示;DISPLAY分页显示。 示例:A=“中国” A1=5 LIST MEMORY LIKE A*,2)显示和打印全部的内存变量,命令二:,格式:SAVE TO ALL LIKE/ALL EXCEPT 说明:内存变量文件的扩展名为.MEM 示例:SAVE TO AA SAVE TO MM ALL LIKE X* SAVE TO BB ALL EXCEPT ?Y,3)建立内存变量文件,4)内存变量文件的调入,格式:RESTORE FROM 示例:RESTORE FROM MM RESTORE FROM BB,格式:RELEASE 或 RELEASE ALL LIKE /EXCEPT 或 CLEAR MEMORY 或 CLEAR ALL 说明:释放指定的内存变量,但不清除系统内存变量; CLEAR ALL在关闭所有文件的同时清除所有的内存变量。 示例:RELEASE ALL RELEASE X,Y,Z RELEASE ALL LIKE A*,5)释放内存变量,(1)数组变量:一组变量的集合,这些变量的数据类型可以不同,每个数组元素都可以通过一个数值下标被引用,相当于一个内存变量。,(3)一维数组:各个元素按线性排列; 二维数组:类似于一个数据表,第一维是行,第二维是列。,(2)数组元素的数据类型是通过所赋值的数据类型来确定的。,3.系统内存变量,系统内存变量是系统已经定义好的一些变量,通常以下划线开头。如_cliptext,_peject,_diarydate.,4. 数组,1) 数组的定义,命令格式:DIMENSION/DECLARE ( ,) ,( ,) 说明:为数组下标,对一维数组来说,指的是数组元素的个数;对二维数组来说,指的是数组的最大行号和最大列号。 数组的下标允许使用圆括号或方括号括起来。 在同一个数组中,不同的数组元素数据类型可以不同。 数组一旦被定义之后,该数组的每个元素的初值为逻辑假值,可以使用有关的命令给数组元素赋值。 示例:DIMENSION AB(3),C2,3,2) 数组的赋值,数组元素的赋值与普通内存变量一样,可以通过STORE命令或“=”来实现。 示例: 给二维数组X和一维数组Y进行赋值。 DIMENSION X(3,4),Y(3) STORE 5 TO X Y(1)=325 Y(2)=“ABC” Y(3)=.T.,二维数组数据在内存中的存放顺序为:先行后列,(先第一个下标,后第二个下标),可以用一维数组的形式访问二维数组。 例如: DIME X(3,2) 内存顺序 等价的一维数组形式 X(1,1) X(1) X(1,2) X(2) X(2,1) X(3) X(2,2) X(4) X(3,1) X(5) X(3,2) X(6) 问题:若定义DIME Y(4,5),则 Y(15)对应Y(?,?),3) 二维数组,(1)数值运算符:圆括号()、乘方(*或)、 乘(*)、除(/)、模运算或取余(%)、加(+)、 减(-) (2)数值表达式:由数值运算符将数值型常量、变量、函数等连接起来的式子,其结果为数值型。 (3)运算符的优先顺序:括号、乘方、乘除与取模、加减 示例:5+7,70/(5+2),7*8*2,3.4.1数值运算符及数值表达式,(1)运算符:对相同类型数据进行运算操作的符号。 (2)表达式:用运算符将常量、变量、函数等数据连接起来的式子。,3.4 运算符及表达式,(1)字符串运算符:完全连接运算符(+)、不完全连接运算符 (-)、字符串包含运算符($)和精确比较运算符(= =),模糊比较运算符(=) 。 格式:字符串1 运算符 字符串2 说明:完全连接运算符:两个字符串的简单连接; 不完全连接运算符:当字符串1的尾部有空格时,将字符串1尾部的空格移到字符串2的尾部,然后,再将两个字符串连接起来。 包含运算符:检测左边的字符串1是否被包含在右边的字符串2中。如果包含,返回逻辑真值(.T.),否则返回逻辑假值(.F.)。 精确比较运算符(set exact on):只有当两边的字符串完全相等时,返回逻辑真值(.T.)。 模糊比较运算符(set exact off):字符串2是字符串1 的最前面一部分或相等,返回逻辑真值(.T.) (2)字符表达式:由字符串运算符将字符型常量、变量、函数等连接起来的式子。 示例:“abc ”+” bcd ”、”abc ”-” bcd ”、 “book”$”bookstore”、“the”$“this”、 “that”= =”that”、”that ”= ”tha”,3.4.2字符串运算符及字符表达式,(1)日期型运算符:加法(+)、减法(-) (2)日期表达式:由日期运算符将日期型常量、变量、函数等数据连接起来的式子,其返回结果为日期型或者数值型数据。 (3)日期表达式的几种形式: + - - 注意:严格日期格式(set strictdate to 1),如2006-03-21 通用日期格式(set strictdate to 0),如01/01/1996 示例:01/01/1996+20 05/30/1998-05/20/1998 10/28/1995-20,3.4.3 日期运算符及日期表达式,(1)关系运算符:小于()、等于(=)、不等 于(、#或!=)、小于等于(=)。 (2)关系表达式:由关系运算符、数值表达式、字符表 达式或日期表达式组合而成的式子,返回结果为逻辑值。 (3)关系运算符的两边,可以是字符表达式、数值表达 式或者日期表达式,但两边的数据类型必须一致才能进 行比较。 示例:“A”“B”、 “A”“B”、 5+6 8,3.4.4 关系运算符及关系表达式,(1)逻辑运算符:逻辑非(.NOT.)、逻辑与(.AND.)、逻辑或(.OR.) (2)逻辑表达式:由逻辑运算符、逻辑型常量、逻辑型内存 变量、逻辑型数组、返回逻辑型数据的函数和关系表达式组 成,结果为逻辑型常量。 (3)运算规则:进行逻辑与运算时,当参加运算的双方都为 真值时,运算结果为真值,否则为假值;进行逻辑或运算时, 当参加运算的双方都为假值时,运算结果为假值,否则为真 值;进行逻辑非运算时,运算结果为原来的相反值。 运算顺序: !(not) 、 .AND. 、或.OR. 示例:83.AND.8“C”.OR.“A”“C” .NOT.56,3.4.5 逻辑运算符及逻辑表达式,(1)名称表达式:指能代替字符型变量或数组元素的值的 一个引用。 (2)定义一个名称时,只能以字母、汉字或下划线开头, 名称中只能使用字母、汉字、数字和下划线字符。 示例:运用名称表达式打开一个数据表文件。 STORE “C:VFP学生成绩” TO AA USE AA,3.4.7 名称表达式,3.4.6 类与对象运算符,(1)点操作符(.):主要用于确定对象与类的关系,以及属性、事件和方法与其对象的从属关系。 (2)作用域操作符(:):用于在子类中调用父类的方法。,表达式运算优先顺序,如果表达式有各种类型的运算符时,其运算顺序: 函数 高 圆括号 算术运算符和字符串运算符 关系运算符 逻辑运算符 低,3.5.1 数值处理函数,1.取整函数INT(),格式:INT () 示例:?INT(5.96) ?INT(-8.66) ?INT(10.98-2.43),2. 四舍五入函数ROUND(),格式:ROUND(,) N=0,对小数点后第n+1位四舍五入;n0,则对小数点前第|n|位四舍五入 示例:?ROUND(345.6799,3) ?ROUND(345.6799,0) ?ROUND(345.6799,-2),3.5 函数,300,3.取绝对值函数ABS(),格式:ABS() 示例:?ABS(-20),4. 最大值函数MAX(),格式:MAX(,) 示例:?MAX(10,20) ?MAX(-10,-20),5. 最小值函数MIN(),格式:MIN(,) 示例:?MIN(10,20) ?MIN(-10,-20),6.求平方根函数SQRT(),格式:SQRT() 示例:?SQRT(16),7.求自然对数函数LOG(),格式:LOG() 功能:计算以e为底的对数。 示例:?LOG(15.36) &相当于,8.幂函数EXP(),格式:EXP() 功能:计算以e为底的指数幂。 示例:?EXP(3) &相当于e3,9.求余数函数MOD(),格式:MOD(,) 说明:符号同被除数,异号时还需要加上除数 示例:?MOD(10,3) ?MOD(10,-3) ?MOD(15,-4) ?MOD(-15,-4),10. IIF函数,格式:IIF(,) 示例:X=80 Y=60 ?IIF(XY,50+X,100+Y),3.5.2 字符处理函数,1. 宏代换函数&,格式:&. 示例:aa=“bb” bb= “北京” ?aa,bb,&aa ?“&bb是中国的首都” ?“&bb.是中国的首都” n=“567.83” ?356.08+&n,【功能】 在字符型内存变量前使用宏代换函数符号&,将用该内存变量的值去替换&和内存变量名。如后面紧接有其它字符表达式时,应加园点.进行分隔。,2.计算字符串长度函数LEN(),格式:LEN() 示例:?LEN(“ABCDF”) ?LEN(“AB C D F”) X=“首都经贸大学” ?LEN(X),3.生成空格函数SPACE(),格式:SPACE() 示例:?“北京”+SPACE(3)+“首都”,4.取子字符串函数SUBSTR(),格式:SUBSTR(,) 示例:?SUBSTR(“城市经济”,5,4),5.字符串转换成小写字母函数LOWER(),格式:LOWER() 示例:?LOWER(“ABDF”),6. 字符串转换成大写字母函数UPPER(),格式:UPPER() 示例:?UPPER(“abde”),7. 删除字符串尾部空格函数TRIM(),格式:TRIM() 示例:A=“I am a teacher. ” ?TRIM(A),8.删除字符串左边空格函数LTRIM(),格式:LTRIM() 示例:A=“ I am a teacher. ” ?LTRIM(A),9.删除字符串右边空格函数TRIM(),格式:RTRIM(),10.删除字符串最左边和最右边的所有空格函数,格式:ALLTRIM() 示例:A=“ I am a teacher. ” ?ALLTRIM(A),11.取字符串左边部分字符函数LEFT(),格式:LEFT(,) 示例:?LEFT(“there”,3),12.取字符串右边部分字符函数RIGHT(),格式:RIGHT(,) 示例:?RIGHT(“what”,2),13.子字符串位置测试函数AT(),格式:AT(,) 示例: ?AT(“IS”,“THIS IS A BOOK”) ?AT(“IS”,“THIS IS A BOOK”,2) ?AT(“A”,“THIS IS A BOOK”) ?AT(“D”,“BOOK”),14.计算子串出现次数函数,格式:OCCURS(,) 功能:返回字符表达式1在字符表达式2中出现的次数,没有则为0。 示例:?OCCURS(“e”, “there”),15.测试表达式类型函数TYPE(),格式:TYPE() 【功能】 测试表达式的数据类型,返回值为字符型 。必须放在定界符(、“”或 )中。 说明:函数返回值为字符型,各字符含义如下: 字符值 数据类型 字符值 数据类型 C 字符型 M 备注型 N 数值型 O 对象型 D 日期型 G 通用型 T 日期时间型 Y 货币型 L 逻辑型 U 未定义型 示例:A=567 ?TYPE(“A”) 格式:VARTYPE(表达式) 不加定界符(、“”或 )中。 a=520 ?vartype(a) ?vartype(520),16.值测试函数betewwn(),格式:BETWEEN(, ,) 【功能】 测试表达式1的值是否在后面两个表达式之中。 说明: ,是则为.T. 表达式类型可以是数值、字符、日期、日期时间、货币等类型,但要求所有的表达式类型要一致。 示例: ?BETWEEN(“C”,”A”,”E”) 格式:ISNULL() 示例:STORE .NULL. TO A ISNULL(A),17.空值测试函数ISNULL(),3.5.3 日期和时间处理函数,1.系统当前日期函数DATE(),格式:DATE(),2.系统当前时间函数TIME(),格式:TIME(),3.日函数DAY(),格式:DAY(/),4.月份函数MONTH(),格式:MONTH(/),5.年份函数YEAR(),格式:YEAR(/),3.5.4 数据转换函数,1.字符转换成ASCII码函数ASC(),格式:ASC() 功能:给出中最左边字符的ASCII码的十进制数。 示例:?ASC(“ABCD”),2. ASCII码值转换成字符函数CHR(),格式:CHR() 功能:将的值作为ASCII码的十进制数,给出对应的字符。 示例:?CHR(65),3.数值型转换为字符型函数STR(),格式:STR(,) 说明: 1)给出转换后的字符串长度,该长度包括小数点、负号。如果缺省和,其输出结果将取固定长度为10位,且只取其整数部分; 2)给出小数位数,决定转换后小数点右面的小数位数,默认位数为0位; 3)如果的值大于给出值的数字位数时,在返回的字符串左边添加空格; 4)如果的值小于小数点左边的数字位数,将返回一串长度为数值表达式2的星号,表示数值溢出。 示例:?str(95643.5136) ?str(95643.5136,8,2) ?str(95643.5136,7,2) ?str(95643.5136,8) ?str(95643.5136,3),4.字符替换函数STUFF(),格式:STUFF(,起始位置,字符个数,子字符串) 功能:用替换字符串中的某部分字符串,对进行替换的开始位置以及被替换的个数分别有起始位置和字符个数确定 示例:?STUFF(“ABCD”,2,2,EF) ?STUFF(“化学系03级1班”,8,1,4) ?STUFF(“计算机等级考式-basic”,15,6,foxpro),5.字符替换函数chrtran(),格式:CHRTRAN(,字符串2,字符串3) 功能:当字符串1中的一个或多个字符与字符串2 中的某个字符相匹配时,用字符串3 中与字符串2 相同位置的字符替换字符串1 中的字符。若长度 字符串3字符串2:字符串3中多余的字符被忽约。 示例:?chrtran(“计算机”,“计算”,“好美丽“) ?chrtran(“计算机123计“,“计算机“,“美丽“),好美机,美丽123美,6.字符型转换成数值型函数VAL(),格式:VAL() 说明: 1)转换时,如果遇到非数字字符则停止。如果字符型表达式的第一个字符即非上述字符,则转换停止;返回值为0.00 2)转换后的小数位数,隐含为2位,可用SET DECIMAL TO N去改变 示例:?VAL(“8769.3421”) ?VAL(“8769AB21”) ?VAL(“AB8769.3421”),7.字符型转换成日期型函数CTOD(),格式:CTOD() 说明:必须是一个有效的日期格式。 示例:?CTOD(“07/01/97”) 结果为:07/01/97,8.日期型转换成字符型函数DTOC(),格式:DTOC(/,1) 说明:如果有,1选项,则按照年月日的格式输出。 示例:X=CTOD(“07/01/97”) ?DTOC(X) ?DTOC(X,1),结果为:07/01/97 (字符型),结果为:19970701 (字符型),3.5.5 与数据表有关的函数,1. 表文件记录个数测试函数,格式:RECCOUNT() 说明:检测当前或指定工作区中数据表的记录个数,包含已有逻辑删除的记录。缺省工作区号或别名时指当前工作区。别名必须放在定界符中。返回值为数值型。 示例:USE 学生表 ?RECCOUT(),2. 表文件开始测试函数,格式:BOF() 说明:检测当前或指定工作区中表的记录指针是否位于第一条记录之前,如果是,返回真值(.T.),否则返回假值(.F.)。 示例:USE 学生表 ?BOF()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论