版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 VFP的数据类型与存储类型,Visual FoxPro 6.0, ,3.1 数据类型 数据是反映客观事物属性的记录。通常分为数值型和字符型两种基本类型。数据类型一旦被定义,就确定了其存储方式和使用方式。Visual FoxPro系统将数据细化分为以下十三种类型。 (1)字符型 ( Character ) 字符型(C型)数据可以包含任何可显示的ASCII码字符,包括字母、数字、汉字、符号、空格等,长度范围是0254个字符,使用时必须用定界符单引号,双引号,方括号括起来。 、 “”、 , ,(2)数值型 ( Numeric ) 数值型(N型)是由数字(09)、小数点和正负号组成。最大长度为
2、20位(包括、和小数点)。 (3)整型 ( Integer ) 整型(N型)表示整数,仅用于字段变量,数据占4个字节。 (4)浮点型 ( Float ) 浮点型(N型)与数值型等价,为与其它软件的兼容而设。 (5)双精度型 ( Double ) 双精度型(N型)是更高精度的数值型数据,只用于字段变量,固定占用8个字节,并采用固定长度浮点格式存储。, ,(6)货币型 ( Currency ) 货币型(Y型)用来表示货币值, 系统默认的货币符号是“$” 。 (7)日期型 ( Data ) 日期型(D型)用于表示日期,用默认格式mm/dd/yyyy来表示,长度固定为8位,yyyy表示年,占4字节,m
3、m表示月,占2字节,dd表示日,占2字节。 (8)日期时间型 ( DataTime ) 日期时间型数据是描述日期和时间的数据。 其默认格式为mm/dd/yyyy hh:mm:ss。 其中yyyy代表年,前两个mm代表月,dd代表日,hh代表小时,后两个mm代表分钟,ss代表秒,长度固定为8位。 (9)逻辑型 ( Logical )逻辑型数据(Logic)是描述客观事物真假的数据,用于表示逻辑判断结果。 逻辑型数据只有真(.T.)和假(.F.)两种值,长度固定为1位。, ,(10)备注型 ( Memo )备注型数据(Memo)用于存放较长的字符型数据类型。可以把它看成是字符型数据的特殊形式。 备
4、注型字段固定占4个字节,用来存储一个指向备注文件(.FPT)的指针,实际数据长度仅受限于现有的磁盘空间。 (11)通用型 ( General ) 通用型(G型)用于存储OLE对象,可以是电子表格、文档、图片等。仅适用于表中的字段,固定占4个字节,实际数据长度仅受限于现有的磁盘空间。 (12)字符型(二进制) 与字符类相似,但若代码页(不同语系代码)改变时,其值并不会随之改变,即VFP不会自动转换成相应国家的语系。 (13)备注型(二进制) 与字符型(二进制)一样,当代码页改变时,其值不会随之改变。, ,3.2 数据存储类型(常量、变 量) 3.2.1常量 在数据处理过程中其值不发生变化的量叫常
5、量。 1.数值型(N型) 数值型常量是由数字09、小数点、正负号和 E(科学计数法)组成的数值。 如 整数: 100 ,-35 小数: 2.54358 科学计数法 如: 1.2E+5 表示 1.2乘以10的5次方。 0.3926E1, 2.7E02,2.字符型(C型) 字符型常量是由“ ” 、 、 括起来的字符或字符串。 例如,“ABCD”、No_4、北京 、“Im a student”等。 注意:引号和括号必须是英文字符 3. 逻辑型(L型) 只有逻辑“真”值和逻辑“假”值两个值, 真 : .T. 、.t. 、.Y. 、.y. 假: .F. 、.f. 、. N. 、.n. 4.货币型(Y型)
6、 货币型常数是以“$”作为前缀的数值, 如$986.35、 $1234.5678。 保留四位小数 如:$231.12345,实际在计算机里存放的是:$231.1235,5.日期型(D型) 日期常量是用 括起来的日期形式的常量。 如 10/01/1992 ,10/01/92, 10-01-92 。 严格的日期格式YMD(VFP默认)yyyy-mm-dd或yyyy/mm/dd 。 如 2000-09-20,2000/10/01 。 6.日期时间型(T型) 日期时间型常量也用 括起来表示, 如 10/01/92 8:45 严格的日期时间格式为: yyyy-mm-dd hh:mm:ssa|p 或 yy
7、yy/mm/dd hh:mm:ssa|p 如 2000-09-20 8:45,2.3.2 变 量 在命令操作和程序运行过程中其值允许变化的量称为变量。,一、内存变量 定义内存变量时应取名并赋初值,变量建立后存储于内存中,并可以改变其值,直到清除该变量。, ,内存变量的命名规则: 变量名可以由字母、数字、下划线和汉字组成,但第一个字符不可以是数字,至多128个字符,不可与系统保留字同名。 内存变量的定义和赋值 在内存变量赋值同时,也定义了内存变量及数据类型。 格式1 STORE TO 格式2 = , ,例: NAME = 李华 STORE 5*4 TO A,B,C ? NAME ?A ? NAM
8、E ? 同志 ? NAME=,NAME,结果: 李华 20 李华同志 NAME=李华,二、数组变量 数组:按一定顺序排列的一组内存变量。 “先定义后使用 如定义:DIMENSION|DECLARE a(2,3),b(4) 赋值:a=4, b(1)=“foxpro” a(2,1)=3等价a(4)=3, ,三、字段变量 表的各个字段都是字段变量 use 学生表 ?学号 go 5 ?姓名 内存变量和字段变量同名时:字段变量优先,若要显示内存变量,用?m.编号或?m-编号, ,四、记录 记录是表中的一行字段的集合。 五、对象 对象是构成程序的基本单位和运行实体。 3.3函 数 函数是系统内部预先编制好
9、的一组程序,分别实现某些特定的运算或操作。 函数的一般调用形式: (,) 其中函数名是系统规定的,参数可以是一个或多个,也可为空, 即:函数名(),但圆括号不能省略。 VFP提供了200余种函数,常用函数 P50表2.7表2.11。 按功能可划分为:数学函数、字符串函数、日期和时间函数、类型转换函数、测试函数。,1、数学函数(数值函数) (1)求绝对函数ABS 格式:ABS(数值表达式) ?ABS(- 4) 结果为 (2)求整函数INT 格式:INT(数值表达式) ? INT( 4.8) 结果为 (3)四舍五入函数ROUND 格式:ROUND(数值表达式,保留小数位) 功能:按保留小数位指定的
10、位数对数值表达式的数值进行四舍五入。 ?ROUND(3.14159,3) 3.142 ?ROUND(3.14159,0) 3,(4)指数函数EXP、平方根函数SQRT、 格式:EXP| SQRT (数值表达式) ?EXP(2) 7.39 ?SQRT (9) 3 (5)取模 (求余数)函数MOD 格式:MOD(数值表达式1, 数值表达式2) 功能:取数值表达式1除以数值表达式2的余数。 ?MOD(20,3) 2 (6)求最大值MAX、最小值MIN 格式:MAX| MIN (表达式1,表达式2) 功能:求表达式1和表达式2中的大者、小者。,2、字符串函数 (1)判子字符串位置AT 格式:AT(字符
11、表达式1,字符表达式2 ,数值表达式) 功能:求字符表达式1在字符表达式2中第数值表达式次出现的起始位置。 数值表达式 默认值为 1。 说明: 若字符表达式2中不包含字符表达式1,则函数值为零; 大小写字母在检索中视为不同。 ?AT(OK,COMPUTER OKOK ,2) 12 ?AT(数据,计算机数据管理系统) 7 ?AT(BOOK,COMPUTER) 0,(2)求子串函数SUBSTR 格式:SUBSTR字符表达式,起始位置,长度 功能:对字符表达式从给定的起始位置开始截取指定长度的字符,生成一个新的字符串; ?SUBSTR(110102490217041,7,6) 490217 (3)取
12、左、右子串函数 格式:LEFT | RIGHT (字符表达式,数值表达式) 功能:LEFT 从字符表达式左边截取由数值表达式的值指定的字符,生成一个新的字符串; RIGHT 从字符表达式右边截取由数值表达式的值指定的字符,生成一个新的字符串; ?LEFT(FOXPRO数据库管理系统,6) FOXPRO ?RIGHT(FOXPRO数据库管理系统,14) 数据库管理系统, ,(4) ALLTRIM删除首部和尾部空格 格式: ALLTRIM(字符表达式) 功能: ALLTRIM删除字符串首部和尾部的空格 ?ALLTRIM(“ man ”) man (5)构造空格函数SPACE 格式:SPACE(数值
13、表达式) 功能:产生由数值表达式的值决定的空格数。 ?“姓名”+SPACE(3)+“李宁” 姓名 李宁 (6) 字符串长度函数LEN 格式:LEN(字符表达式) 功能:测定字符串的长度(字符个数)。 ?LEN(FOXPRO数据库管理系统) 20,(7) 大小写字母转换函数LOWER|UPPER 格式: (字符表达式) 功能:LOWER把字符表达式中的大写字母转换为小写字母; UPPER把字符表达式中的小写字母转换为大写字母。 ?LOWER(FoxPro) foxpro ?UPPER(FoxPro) FOXPRO, ,3、日期和时间函数 (1)系统日期函数DATE 格式:DATE() ?DATE
14、() 99/11/15 (2)系统时间函数TIME 格式:TIME() ?TIME() 08:50:43 (3)年、月、日函数YEAR|MONTH|DAY 格式:YEAR|MONTH|DAY(日期表达式) 功能:从日期表达式中求出年份、月份、日份的数值。 ? DATE() 99/11/15 ? YEAR(DATE() 1999 ? MONTH(DATE() 11 ? DAY(DATE() 15, ,4、类型转换函数 (1) 字符转换为数值函数VAL 格式:VAL(字符表达式) 功能:将字符型数据转换为数值型数据。 说明: 若由数字字符和小数点组成,则转换成相应的数值,但只保留两位小数,其余小数
15、四舍五入。 若由非数字字符打头,则转换为0.00。 若由数字字符打头,且混有非数字字符时,则转换到第一个非数字字符。 ?VAL(1234.5678) 1234.57 ? VAL(FoxPro) 0.00 ? VAL(1234FOX.5678) 1234.00, ,(2) 数值转换为字符函数STR 格式:STR(数值表达式,长度,小数位数) 功能:把数值表达式的运算结果转换为指定长度的字符串。 ? STR(1234.5678,7,2) 1234.57 (3) 字符转换为日期函数CTOD 格式:CTOD(字符表达式) 功能:将符合yy/mm/dd 、mm/dd/yy日期格式的字符串转换为相应日期。
16、 ? CTOD(99/11/15) 99/11/15 (4) 日期转换为字符函数DTOC 格式:DTOC(日期表达式) 功能:将转换为相应的字符串。 说明:按mm/dd/yy格式转换; ? DTOC(DATE() 99/11/15,(5) ASCII码值转换为字符函数CHR 格式:CHR(数值表达式) 功能:将所表示的ASCII码值转换为相应的字符。 ? CHR(65),CHR(97),CHR(48) A a 0 (6) 字符转换成ASCII码值函数ASC 格式:ASC(字符表达式) 功能:返回最左边的一个字符的ASCII码值。 ? ASC(A),ASC(a),ASC(0) 65 97 48,
17、5、测试函数 (1) 记录号测试函数 RECNO 格式:RECNO(数值型表达式) 功能:给出指定的工作区中打开的数据库的当前记录号。 (2) 文件起始测试函数 BOF 格式:BOF(数值型表达式) 功能:测试指定的工作区中库文件记录指针是否指向起始位置。是函数值为逻辑真(.T.),否则为假(.F.)。 (3) 文件结束测试函数 EOF 格式:EOF(数值型表达式) 功能:测试指定工作区中库文件记录指针是否指向结束位置。是函数值为逻辑真(.T.),否则函数值为假(.F.)。,(4) 文件测试函数 FILE 格式:FILE(文件名) 功能:测试指定的磁盘文件是否存在,若存在,函数值为逻辑真(.T
18、.),否则函数值为假(.F.)。 (5) 记录测试函数 RECOUNT 格式:RECOUNT(数值型表达式) 功能:测试指定的工作区中数据库的记录个数。 (6) 数据类型测试函数 TYPE TYPE(“字符表达式”) 返回表达式类型, 如 N,C,D,L等 ?TYPE(date() ?TYPE(“字符表达式”) ?TYPE(.t.),(7) 检索测试函数 FOUND 与LOCATE ,SEEK,FIND,CONTINUE等同用,查到返回.T.,否则.F. (8) 库文件名测试函数 DBF 返回当前工作区打开的表名,3.4 表达式 常量、变量、函数通过运算符连接起来构成表达式。 VFP中的表达式
19、有算术表达式、字符表达式、日期表达式、关系表达式、逻辑表达式。 1.算术表达式: 由常量、变量、函数和算术运算符构成。 运算符号:( ) 括号 *或 乘方, 例:3*2 或 32 *、/ 乘、除 % 取模(余数),例:15%4 结果是3 +、- 加、减(单目运算为“+”、“-”号) 优先次序同数学相同 如一元二次方程的一个根: (-b+sqrt(b*2-4*a*c)/(2*a),2.字符表达式: 由常量、变量、函数和字符算术运算符构成。 字符运算符有两个:完全链接( +)和去空链接( -) + : 将几个字符串连接成一个新字符串。 例:?ABCD + EFGH + 1234 结果为:”ABCD
20、EFGH 1234” - : 将第一个字符串尾部空格移到后面一个字符串末尾后,连接成一个新字符串。 例:? 莆田 学院 + 会计系 结果为: “莆田学院 会计系” ?莆田 -学院 - 机电系+通信专业,3.日期表达式:日期及时间运算符有“+”和“-” 日期及日期时间型表达式的运算有三种情况: (1)两个日期(时间)型数据相减,表示两个日期相差天数。 例:?2000-10-01 - 2000-09-01 结果为30,表示两个日期相距30天。 (2)一个日期(时间)型数据加一个表示天数的数值型数据,结果是一个向后推算的日期(时间)型数据。 例:?2000-09-01 + 60 结果为2000-10
21、-31 ?2000-09-01 17:34+60结果为2000-09-01 17:35 (3)一个日期(时间)型数据减一个表示天数的数值型数据,结果是一个向前推算的日期(时间)型数据。 例:?2000-09-01 30 结果为2000-08-02,4.关系表达式:关系表达式对同一类型的数据进行比较运算,比较的结果符合逻辑, 其值为.T.;否则为.F.。 关系运算符为: =、 、 =、 或#、 = =、 $ 等于 小于 大于 小于等于 大于等于 不等于 全等于 子字符串比较 运算规则 数值型数据按数值的大小比较 字符型数据按字符从左到右比较 日期型数据按年、月、日顺序比较 使用“=”比较字符串时
22、,系统默认为非精确比较,即当“=”左边的字符串与右边的字符串的前半部分或全部相当时,系统均认为相等,即 .T. 。 如:? ABCDE=ABC .T. 可以使用SET EXACT ON | OFF命令设置精确比较或非精确比较。,例: ? 2+3=6 .F. ? C1C2 .T. ? ABC= =ABCDE .F. ?CD$ABCDEF .T. ? BD$ABCDEF .F. SET EXACT OFF (非精确比较) ? ABCDE=ABC .T. ? ABC= ABCDE .F. SET EXACT ON (精确比较) ? ABCDE=ABC .F. ? ABC=ABCDE .F.,5.逻辑
23、表达式: 两个或两个以上的关系表达式,及逻辑型常量、变量、函数,之间用逻辑运算符连接起来,构成逻辑表达式。 运算符: .NOT. .AND. .OR. 圆点 可以省略。 运算规则: 逻辑非(.NOT.): 对(.NOT.)右边的L型数据求反; 逻辑与(.AND.):当.AND.两边为真时,结果才为真(.T.); 逻辑或(.OR .):当.OR .两边至少一个为真时,结果为(.T.)。 优先次序:逻辑非逻辑与逻辑或 运算结果: .T. 或 .F. 6.运算的优先顺序: 课本P49 表3-8 算术运算关系运算逻辑运算 ()括号最优先,习题 参考答案:B 1、已知每年的圣诞节日期为12月25日,那么2002年圣诞节与元旦(1月1日)相差的天数是( )。 A) 356 B) 358 C) 360 D) 362 参考答案:C 2、要从数值型数据123中取出数值23,如果限制函数嵌套,则最适合采用的函数是( )。 A) int() B) round() C) mod() D) exp() 参考答案:B 3、substr(“123456789”,len(“fo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秋季开学幼儿园中班:升班仪式成长的印记课件
- 2026年叉车作业安全培训课件
- 2026 年中国农民丰收节传承古老农耕民俗文化课件
- 2026 年生活中标准化便利案例课件
- 2026 年播撒和平种子共建和谐地球家园课件
- 2026年湖北省云学联盟高三8月阶段训练数学试卷及答案
- 电子陶瓷挤制成型工安全宣贯模拟考核试卷含答案
- 2025年福建省三明市清流县四年级数学下学期期末监测模拟试题(含答案)
- 油品储运调合工岗前实操效果考核试卷含答案
- 电缆卷绕车司机创新应用水平考核试卷含答案
- 2.1《 多样的窗》 课件2025-2026学年人教版美术二年级上册
- 人工智能基础与应用课件 第一章 模块一 智慧初探:人工智能的奇妙世界
- 《同他去》(教学设计)-2024-2025学年湘艺版(2024)音乐一年级上册
- 《老年服务礼仪与沟通技巧》全套教学课件
- 4.6.1人体对外界环境的感知 课件 生物人教版(2024)八年级上册
- 进行性血胸的诊断
- 客服外包协议补充协议
- 2024年新人教版7年级道德与法治上册全册课件
- 小儿腹泻-小儿推拿培训课件
- 《文创产品设计》-第二章 探究设计:探寻文创之法
- 2024年下半年商务部国际贸易经济合作研究院招聘工作人员15人易考易错模拟试题(共500题)试卷后附参考答案
评论
0/150
提交评论