您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第2章 Visual FoxPro数据与数据运算(1)
第二章VisualFoxPro数据与数据运算(1)Contents数据类型1常量2变量3运算符和表达式42.1.1VisualFoxPro数据类型为了满足存储和处理数据的需要,VisualFoxPro提供了13种类型,它们是字符型、数值型、整型、浮点型、双精度型、货币型、逻辑性、日期型、日期时间型、备注型、通用型、字符型(二进制)和备注型(二进制)。整型(Integer)用于存储无小数部分的数值。长度:占4个字节,用二进制形式表示浮点型(Float)存储采用浮点型。如:1.20E+9双精度型(Double)二进制字符型(CharacterBinary)二进制备注型(MemoBinary)不常用,不必看2.1.1VisualFoxPro数据类型备注型(Memo)备注型数据主要用于存放不定长或大量的字符型数据。长度:固定为4个字符备注型数据不存放在数据表中,而是存放在与数据表文件同名、扩展名为.FPT的备注文件中通用型数据(General)存储多媒体信息。特征同备注型2.1.1VisualFoxPro数据类型2.1.2常量常量(Constant)是指在程序运行期间,其值不变的量。常量的写法和其类型有关。VisualFoxpro6.0常见的数据类型的常量有:数值型、货币型、字符型、日期型、日期时间型、逻辑型。•数值型常量也就是常数,用来表示数量的大小。组成:由数字0~9、小数点和正负号构成长度:在内存中占8个字节•例如:65、8.45、﹣43等。在讨论数值型数据宽度时,小数点和正负号也各占1位2.1.2常量1.数值型常量(Numeric)2.字符型常量(Character)字符型常量也称字符串。组成:可显示或打印的字符(汉字、英文字符、数字字符、空格等)长度:0~254个字符。定界符:单引号、双引号或方括号字符型数据必须要有定界符,如张三,1+1当字符串中包含有一种定界符时,必须用另一种定界符来定界该字符串,但注意要成对使用。如国宝[兔首]空串(〝〞)和包含空格(〝〞)的字符串是不同的字符型数据在显示时没有定界符演示2.1.2常量3.逻辑型常量(Logic)逻辑型数据是用于描述客观事物真假的数据,用于表示逻辑判断的结果。组成:.T..t..Y..y..F..f..N..n.长度:1位,占1个字节前后两个定界符不可少,否则会被误认为是变量名演示2.1.2常量4.日期型常量(Date)用于表示日期的数据。日期型数据包括年、月、日3个部分,每部分间用日期分隔符分开。格式:传统格式:mm/dd/yy,默认显示格式严格格式:{^yyyy/mm/dd},默认输入格式长度:固定8位日期分隔符:斜杠(/)、连字号(﹣)、句点(.)和空格等。日期的输入就按严格格式输入演示2.1.2常量与日期格式有关的设置命令SETMARKTO[日期分隔符]用于设置显示日期的分隔符。分隔符的两边要加定界符设定的分隔符不受输入日期分隔符的影响单独使用SETMARKTO为取消当前分隔符设定演示SETCENTURYON|OFF设置日期是否显示世纪。演示SETSTRICTDATETO[0|1|2](选学)演示2.1.2常量5.日期时间型常量(DateTime)描述日期和时间的数据。格式:{^yyyy/mm/dd[,][hh[:mm[:ss]a|p]]}长度:日期时间型数据用8个字节存储,第一个4字节保存日期,其余的4字节保存时间。时间取值范围:00:00:00AM~11:59:59PM系统默认的格式为AM。演示2.1.2常量6.货币型常量(Y)同数值型输入或书写时要在数据前放一个$,以示区别货币型数据在存储和计算时采用4位小数,多余的系统将四舍五入货币数据在存储和计算时,采用4位小数,占据8字节存储空间。例如:常量$9.8756789存储为$9.8757。2.1.2常量认识如下常量并判断是否正确:〝a〞、`BCD`、[计算机]、“数据库技术+6.0”$34、898.324、123.4567{^2005-03-31}、{2005.03.31}、{^05/03/31}.T..y.F.n.2.1.2常量2.1.3变量命令或程序中经常需要使用数据或保存计算出的结果,这些数据往往是临时的,都存储在内存单元中,为了使用方便,用变量指代相应存储单元。一个变量由变量名和变量值组成。变量也有数据类型,由其存储的数据的类型决定。声明但未赋值的变量,其值为逻辑假(.f.)。什么是变量?为什么要引入变量这个概念?变量是命令操作和程序运行过程中其值可以改变的量。2.1.3变量变量名的命名规则:只使用字母、汉字、下划线和数字。以字母、汉字、下划线开头。使用1到128个字符,字段名,自由表名和索引标识最多只能10字符长。避免使用VisualFoxPro保留字。VFP定义的,有特定含义。必须是见名知意,即看见变量名知道变量名的含义。例如要对年龄取变量名,使用age就比使用x好。下列变量名哪些是合法的,哪些是非法的?(1)a(2)4ef(3)west$12(4)计算机_1(5)f-3(6)student20062.1.3变量根据变量的存在方式,分为内存变量和字段变量。字段变量:关系表中字段的名称即为字段变量,它是一个多值变量。VFP中允许两种变量重名,此时字段变量优先存取,若要访问内存变量,则要在内存变量名前加上m.或者M.内存变量:内存变量即内存中的某个存储区域。常用来保存命令或程序需要的常数、中间结果或对数据表和数据库进行某种计算后的结果等。变量系统变量以“_”(下划线)开头2.1.3变量1内存变量内存变量的赋值【命令1】内存变量名=表达式【命令2】STORE表达式TO内存变量名表注意两种赋值语句的区别多次赋值只保留最后的值(一个内存变量只存一个数)演示内存变量值的输出(显示)【命令1】?表达式表【命令2】??表达式表注意二者的区别演示(4)内存变量显示LIST|DISPLAYMEMORY[LIKE通配符][TOPRINTER|TOFILE文件名]注意:通配符有*和?两种,*表示任意多个字符,?代表任意一个字符。(5)清除内存变量(自学)格式1:CLEARMEMORY格式2:RELEASE内存变量名表格式3:RELEASEALL[EXTENDED]格式4:RELEASEALL[LIKE通配符|EXCEPT通配符](6)内存变量的保存与恢复(自学)格式1:SAVETO内存变量文件名[ALLLIKE|EXCEPT通配符]格式2:RESTOREFROM内存变量文件名[ADDITIVE]2.1.3变量2.1.4数组变量数组变量(数组)是一组地址连续的内存变量的集合。数组中的变量称为数组元素。每一数组元素用相同数组名以及该元素在数组中排列的序号一起表示,也称为下标变量。例如x(1)、x(2)与y(1,1)、y(1,2)、y(2,1)、y(2,2)等。因此数组也看成是名称相同、而下标不同的一组变量。命名规则:同简单内存变量下标号要用括号括起来下标可以是表达式,但返回值须为整数(若为小数,系统将自动取整)数组的维数一维数组是含有一个下标的数组,例:B(1),B(2),B(3),B(4)……。二维数组是含有两个下标的数组,例:XD[1,1],XD[1,2],XD[2,1],XD[2,2]。通常又把二维以上的数组称为多维数组,但VFP中仅支持一维数组和二维数组。2.1.4数组变量512{^1982/05/03}monday897A=5B=897DimeC(3)C(1)=12C(2)={^1982/05/03}C(3)=“monday”内存变量与数组在物理存储上的不同2.1.4数组变量一维数组与二维数组的转换A(1)A(2)A(3)A(4)A(5)A(6)A(7)A(8)A(9)A(9)A(1,1)A(1,2)A(1,3)A(2,1)A(2,2)A(2,3)A(3,1)A(3,2)A(3,3)A(3,3)2.1.4数组变量1数组的定义Dimension|declare数组名(行数,[列数])2数组的赋值1.没有赋值的数组,默认都为.F.2.所有数组元素赋同一个值dimena(10)a=103.单个数组元素赋值A(1)=10A(7)=“张三”2.1.4数组变量3+5=8X-Y=16表达式是由常量、变量、函数和运算符组成的运算式。根据组成表达式的数据类型的不同,可以分为5种表达式:数值表达式、字符表达式、关系表达式、日期时间表达式、逻辑表达式。1.数值表达式()、**或^、*、/、%、+、-各运算符的优先级和数学运算相同%为取余运算,不是百分号(即VFP中,百分数都是用小数表示)%运算规则(两数不能整除时):两数同号,直接相除取余即可两数异号,两数相除的余数加上除数的值。如-5%3、12%-5-5%3=112%-5=-32.2表达式及其运算Z1YX2数值型表达式的书写规则:所有符号都必须并排写在同一行上,每个符号占一格,不能写上标或下标。例如:23要写成2^3,Xl+X2要写成X1+X2。原来在数学表达式中省略的内容必须重新写上。例如:B2-4AC要写成B^2-4*A*C。所有括号都用小括号(),且括号必须配对。例如:[5(a+b)+c]÷4必须写成(5*(a+b)+c)/4。表达式中的数学符号要改写成VisualFoxPro中可以表示的符号。例如:要把2πr改为2*pi()*r。2.2表达式及其运算2.字符表达式字符运算符用于连接字符串。运算符含义说明+连接将两个字符串完全连接-空格移位连接将两个字符串连接,将前一个字符串尾部的空格移到后一个字符串后面例:X=计算机基础Y=教学部?X+Y,X-Y2.2表达式及其运算3.日期时间表达式日期或日期时间型的运算结果是日期或日期时间型或者是数值型常数。【格式1】日期1-日期2(两个日期相隔的天数)【格式2】日期整数(产生一个新的日期)例:?{^2004-10-19}-10,{^2004-10-1910:23:35}+10?{^2004-10-19}-{^2004-10-10}?{^2004-10-19}+{^2004-10-10}算算从出生到现在活了多少天?2.2表达式及其运算4.关系表达式用于同类型数据的比较,通过返回的逻辑值来判断是否正确。运算符说明运算符说明小于=小于等于大于=大于等于=等于==字符串精确比较、#或!=不等于$测试前一个字符串是否包含在后一个字符串中(前一个字符串作为整体)例:?教学$教学部?AbC$ABC?BAC$ABC2.2表达式及其运算有关大小或顺序比较规则数值、货币型:按数值大小。如?(1+5)*336/2日期/时间型:晚大于早。如?{^2009-3-6}{^2009-2-1}逻辑型数据:真大于假。如?.T..F.字符型:以右边字符数目为比较基准,比较运算符两边的字符串,从左到右逐个字符比较,根据两字符的大小(顺序)来判断字符串的大小。例:ABDXYZ,3a3ab,李教授李Vfp中字符排序方式有3种:machine、pinyin、stroke,不同排序下的字符顺序并不相同。默认排序为pinyin2.2表达式及其运算设置字符的排序次序方法方法一:“工具”—“选项”—“数据”方法二:SETCOLLATETOMACHINE|PINYIN|STROKE字符串大小的比较规则:Machine:null-□(空格)-数字-大写英文-小写英文-汉字(拼音顺序)例:?ABcAb,甲乙,李教授李Pinyin:null-□(空格)-数字-aAbB···-汉字(拼音顺序)例:?ABcAb,甲乙,李教授=李Stroke:null-□(空格)-数字-aAbB···-汉字(先按笔画数,相同数目时按笔画走向)2.2表达式及其运算2.2表达式及其运算字符串精确比较与EXACT设置当用”==”进行比较时,
本文标题:第2章 Visual FoxPro数据与数据运算(1)
链接地址:https://www.777doc.com/doc-3101442 .html