版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章VisualFoxPro
语言基础薛春香xcx516@163.com12本章要点本章主要讲解VisualFoxpro中数据类型、常量和变量的的基本概念,表达式和函数的基本知识。通过本章学习,应该掌握以下内容:数据类型变量和常量表达式函数
2.1数据类型3数据类型是指数据对象的取值集合,以及对之可施行的运算集合。数据类型规定了具有该类型的变量或表达式的取值范围,也规定了与之相联系的运算的集合。创建表时需要用户指明表中每个字段的数据类型,变量或数组的数据类型则由保存在其中的值来决定。数据类型表示符号数据类型表示符号数据类型表示符号字符型C数值型N货币型Y备注型M浮点型F逻辑型L日期型D双精度型B通用型G日期时间型T整型I2.1.1字符型(C)由任意字符(字母、数字、空格、符号等)组成每个字符占一个字节,最多可有254个字符使用时要用英文的单引号、双引号或方括号括起来(不可用中文标点)
如:“A0001”、‘数学系’
、[214]注意:如果将阿拉伯数字定义为字符型数据时,它不具备数学上的数值含义,不能参加数学运算,如电话号码,邮编等。42.1.2数值型(N)用于表示数值数据由数字0-9、小数点、正负号和字母E组成取值范围是:
-0.9999999999E+19~0.9999999999E+20其长度(数据位数)最大20位,在内存中,数值型数据占用8个字节。小数点和小数位数是字段总长度的一部分通常用于表示实数。如23,-103.45,1.3E-5(即1.3×10-5)等;52.1.3整型(I)用于存储无小数的数值宽度为4字节,其取值范围是:-2147483647~214748364762.1.4货币型(Y)当涉及货币时使用,取代数值型宽度为8字节,默认保留4位小数,其取值范围是:
-922337203685477.5808~922337203685477.5807使用货币型数据要在前面加上符号“$”,如:$10072.1.5其他数值型双精度型(B)用于存储精度较高、位数固定的数值宽度为8字节,其取值范围是:
+/-4.94065645841247E-324~
+/-8.9884656743115E307浮点型(F)与数值型等价,主要是为了得到较高的计算精度。包含此类型是为了提供兼容性82.1.6日期型日期型(D)用于存储有关年月日的数据宽度为8字节,取值范围是01/01/0001~12/31/9999表示日期型的数据通常要用花括号,
如:{09/10/2001}、{}(空日期)系统默认格式为{mm/dd/yyyy},可通过SETDATE、SETCENTURY命令设置日期格式,或通过系统的“选项”对话框中的“区域”卡中设置92.1.6日期型日期时间型(T)在保存日期、时间或二者兼有时使用日期时间的默认格式是{mm/dd/yyyyhh:mm:ss},其中mm、dd、yyyy的意义与日期型相同,而hh表示小时,mm表示分钟,ss表示秒数。宽度为8字节与日期型一样,要用“{}”将数据括起来,{10/01/200210:30:30}表示2002年10月1日10时30分30秒这一日期时间数据。若要指定空日期时间值,要在花括号中加一个冒号,如:{:}102.1.7逻辑型(L)是用来进行各种逻辑判断的数据只含有两个值:真(.T.,.Y.)、假(.F.,.N.)宽度固定,为1字节112.1.8备注型(M)存放较多字符的数据类型。可以把它看成是字符型数据的特殊形式。备注型数据没有数据长度限制,仅受限于磁盘空间。它只用于表中字段类型的定义,字段长度固定为4字节,实际数据存放在与表文件同名的备注文件(.FPT)中,长度根据数据的内容而定。122.1.9其他数据类型通用型(G)用于存储OLE对象,可以是电子表格、文档、图形图片等。它只用于表中字段类型的定义。通用型数据字段长度固定为4位,宽度为4字节,实际数据长度仅受限于磁盘空间。表中存储的是指向OLE对象的引用二进制字符型(C)二进制备注型(M)13浮点型、双精度型、整型、备注型、通用型、二进制字符型、二进制备注型只能用于字段。2.2数据的存储
在VisualFoxPro系统环境下,数据输入、输出是通过数据的存储设备完成的。通常我们都是将数据存入到常量、变量、数组中,而在VisualFoxPro系统环境下,数据还可以存入到记录和对象中。我们把这些供数据存储的常量、变量、数组、记录和对象称为数据存储容器。142.2.1常量(1/5)常量的值在操作过程中始终保持不变。字符型常量:用定界符(单引号、双引号,方括号)括起来的字符串。示例:“ade”
,‘568’
,“
book的中文意思是‘书’。”注意(1)不能使用中文的定界符;
(2)定界符必须成对匹配;(3)如果某个定界符也是字符的内容,则用另一种定界符表示该字符串;(4)不含任何字符的字符串称为“空串”(‘’),不同于包含空格的字符串(‘
’);(5)字符串中的字符大小写不等价。152.2.1常量(2/5)数值型常量(示例:538,-10.5)货币型常量(示例:$10.23
)默认四位小数,超过部分四舍五入。逻辑型常量(示例:.t..T..f..F..Y..y..N..n.)162.2.1
常量(3/5)日期型常量:用花括号作为定界符,有效的日期型和日期时间型数据分隔符为:连字符“-”、正斜杠“/”、点“.”传统型日期常量的表示为系统所指定的方式,可以是{yy/mm/dd},也可以是{mm/dd/yyyy}等格式,受系统命令语句setdateto(设置日期的显示格式)和setcenturyon/off(设置年份的位数)的影响。{05/11/03}可以根据系统设置的不同解释为2003年5月11日,2003年11月5日,2005年11月3日等。精确型日期常量的表示格式为{^yyyy-mm-dd},可以在任何系统环境下使用,如{^2005/11/03}就只表示2005年11月3日,是系统的默认设置。
VFP6.0及以上版本默认日期格式为精确型日期格式,可用setstrictdateto0|1|2设置172.2.1常量(4/5)设置日期显示格式SETDATE[TO]AMERICAN|ANSI|BRITISH|FRENCH|GERMAN|ITLIAN|JAPAN|USA|MDY|DMY|YMD|SHORT|LONG
命令功能:设置日期型和日期时间型数据的显示输出格式。系统默认为AMERICAN美国格式。如果日期格式设置为SHORT或LONG格式,VisualFoxPro系统将按Windows系统设置的短日期格式或长日期格式显示输出日期数据,而且SETCENTURY命令的设置被忽略。
182.2.1常量(5/5)19设置值日期格式设置值日期格式AMERICANmm/dd/yyUSAmm-dd-yyANSIyy.mm.ddMDYmm/dd/yyBRITISH/FRENCHdd/mm/yyDMYDd/mm/yyGERMANdd.mm.yyYMDyy/mm/ddITALIANdd-mm-yySHORTWindows短日期格式JAPANyy/mm/ddLONGWindows长日期格式2.2.2变量变量是在使用过程中其值可以改变的量。内存中一个存储单元的位置(地址);变量名是存储位置的符号表示,该存储位置中存放的数据就是变量的值,变量的类型取决于变量值的类型,可以将不同类型的数据赋给一个变量(C、N、Y、L、D、T)。
变量分为字段变量、内存变量、数组变量和系统内存变量确定一个变量,需要确定其三个要素:变量名、数据类型和变量值。20不特别说明的话,通常变量就是指内存变量。
变量命名规则使用字母、下划线、数字符号和汉字符号命名。但一般建议不采用汉字命名;命名只能以字母或下划线开头;除自由表中字段名、索引的TAG标识名最多只能10个字符外,其他的命名可使用1~128个字符;避免使用VisualFoxPro的保留字;文件名的命名应遵循操作系统的约定。21cVar;nvar2;_aver123;sum_of_score;12x;2_x;num-of-stu;_avg&score;set;
内存变量
内存变量是内存中的临时单元,可以用来在程序的执行过程中保留中间结果与最后结果,或用来保留对数据库进行某种分析处理后得到的结果。
特别要注意,除非用内存变量文件来保存内存变量值,否则,当退出VisualFoxPro系统后,内存变量也会与系统一起消失。(1)内存变量的数据类型内存变量的数据类型包括:数值型、字符型、逻辑型、日期型和日期时间型,由其值来决定。
22(2)内存变量的建立STORE值
TO变量名列表
变量名=值
WAIT‘字符串‘
TO
字符变量名
如:
STORE
'vfp5'
TOC1,X
C2={^1999/12/14}C3=.f.
WAIT‘hello’TOxy1**将HELLO显示在屏幕上,在屏幕上输入的字符赋值给变量xy1
B=6STOREB+3TOCSTORE“中国”TOA,B,C在建立变量的同时就指定了变量的名称、数据类型和变量值(3)内存变量的显示输出?|??<表达式表>
功能:计算表达式表中各表达式的值,并在屏幕上指定位置显示输出各式的值。?:先回车换行,再计算并输出表达式的值;??:在屏幕上当前位置,计算并直接输出表达式的值;<表达式表>:多个逗号两两分隔的表达式,各表达式的值输出时,以空格分隔;?'MYNAMEIS',C1,'TODAYIS:',C2
(4)内存变量的清除Clear
memory
&&清除所有的内存变量,但不清除系统内存变量Release[内存变量︱all]
&&清除指定的内存变量或所有内存变量
Clearall
&&在关闭所有文件的同时清除所有的内存变量。示例:RELEASEALLRELEASEX,Y,Z
(5)内存变量的保存与恢复SavetoFilename
[alllike|allexcept]
&&将内存变量保存到文件中。RestorefromFilename
&&从文件中恢复内存变量。
(6)内存变量的作用范围
LOCAL(声明局部变量)用LOCAL创建的变量只能在创建他们的程序中使用;不能被更高层或更低层的程序访问。PRIVATE(声明私有变量)将调用程序中定义的变量在当前程序中隐藏起来,用户可在当前程序中使用同名变量而不影响变量的原始值;PUBLIC(声明全局变量)在当前工作期中任何程序都能使用和修改全局变量命令窗口中声明的变量是全局变量。
字段变量在一个数据表中,同一个字段名下有若干个数据项,而数据项的值取决于该数据项所在记录行的变化,所以称它为字段变量。字段变量的数据类型与该字段定义的类型一致。字段必须先定义(定义字段变量属性:名字、类型和长度),然后进行赋值,最后才可以使用字段变量。字段变量的值随着表中记录指针的移动,其值永远在变化之中。28内存变量与字段变量的区别在VFP中,若变量与字段同名,字段具有更高的优先权。要访问变量,可在变量前加上:m.或m->。示例:
当前打开的表中有XM字段,XS表(XH,XM,NL)
XM=12
USEXS
GO1
?XM
.......第一条记录的学生的姓名
?M.XM
.......12
?M->XM
.......122.2.3数组数组变量是结构化的变量,是一组具有相同名称、以下标相互区分的有序内存变量(称为数据元素)数组元素的名称(变量名)用数组加下标构成,最大维数为二维,下标必须用圆括号对括;一维数组的元素只有一个下标,二维数组的元素有两个以逗号分隔的下标;如AA(1),BB(2,3)分别表示一维数组AA的第1个元素,二维数组BB中第2行第3列的元素;下标必须是非负数值,可以是常量、变量、函数或表达式;每个数组元素的数据类型可以不同,数组元素的数据类型是通过所赋值的数据类型来确定的。
30
数组的定义
——数组必须先定义后使用
DIMENSION|DECLARE<数组名1>(<数值表达式1>[,<数值表达式2>])[,<数组名2>(<数值表达式3>[,<数值表达式4>])…]<数值表达式>为数组下标,对一维数组来说,指的是数组元素的个数;二维数组则指的是数组的最大行号和最大列号。数组的下标允许使用圆括号或方括号括起来。数组一旦被定义之后,该数组的每个元素的初值为逻辑假值,可以使用有关的命令给数组元素赋值。31给数组元素赋值DIMENSIONAA[6,3]AA[1,2]=2&&数组的第二个元素被赋值2AA=3&&数组的全部元素被赋值3BB=AA&&把数组的第一个元素的值赋给变量BB?AA&&显示数组第一个元素的值
DECLAREx[5]x[1]x[2]x[3]x[4]x[5]数组下标排列规则数组下标的排列规则:数组从下标1开始排列,二维数组的元素排列是先按行排,后按列排。示例:己定义了数组A(6)与数组B(2,3),它们对应的下标排列如下:A(6):A(1),A(2),A(3),A(4),A(5),A(6)B(2,3):B(1,1),B(1,2),B(1,3),
B(2,1),B(2,2),B(2,3)数组元素的重定义数组的重定义:使用DECLARE或DIMENSION命令对已定义好的数组的尺寸和维数进行改变,即将一维数组变为二维数组或将二维数组变为一维数组,并且可以改变数组元素的个数,同时将原数组的数据自动复制到重定义的同名数组(新数组)中。有关数组的几个注意点数组定义完毕后,其中的每个元素的值均为逻辑假。以一维数组的形式对二维数组进行访问时,数组的下标n表示是对该数组中第n个元素进行访问。给数组名赋值,即给该数组中所有的元素赋于同一个值。访问数组名时,即对数组中第一个元素进行访问。2.3操作符及其表达式362.3.1数值运算符及数值表达式2.3.2字符串运算符及字符表达式2.3.3日期运算符及日期表达式2.3.4关系运算符及关系表达式2.3.5逻辑运算符及逻辑表达式2.3.6类与对象运算符2.3.7名称表达式(1)运算符:对相同类型数据进行运算操作的符号。(2)表达式:用运算符将常量、变量、函数等数据连接起来的式子。2.3.1数值运算符及数值表达式?4*6%5^3+1&&在VFP主屏幕上显示25结果。?24%5&&在VFP主屏幕上显示4结果。
?24%-5&&在VFP主屏幕上显示-1结果。
?Mod(23,-5),Mod(-23,-5),mod(-23,5)37运算符功能表达式举例运算结果优先级别()圆括号(2-5)*(3+2)-15最高||||最低-取相反数-(3-8)5**、^乘幂2**5、3^232、9*、/乘、除2*10、25/520、5%,mod()模(取余数)20%50+、-加、减36+19、29-4755、-182.3.2字符串运算符及字符表达式38运算符功能表达式举例运算结果+串1+串2:两串顺序相连接’12‘+’56’’1256’-串1-串2:串1尾空格移到串2尾后再顺序相连接’12‘-‘56’‘1256‘$串1$串2:串1是否为串2子串‘1234’$‘a12345’‘1234’$‘34512’.T..F.字符表达式:由字符串运算符将字符型常量、变量、函数等连接起来的式子。优先级别:两个连接运算的优先级别相同,但高于$的比较运算。2.3.3日期运算符及日期表达式39运算符功能表达式举例+日期和天数相加,结果为日期
时间和秒数相加,结果为时间{01/01/1996}+20-日期和日期相减,结果为天数
时间和时间相减,结果为秒数
日期和天数相减,结果为日期
时间和秒数相减,结果为时间?{^2003-01-23}-35
?{^2003-01-23}-{^2003-4-1}日期表达式:由日期运算符将日期型常量、变量、函数等数据连接起来的式子,其返回结果为日期型或者数值型数据。
{^1980/03/18}+30
.......{1980/04/17}
{^1980/03/18}+30+DATE()
.......?
402.3.4关系运算符及关系表达式运算符功能表达式举例结果<小于15<4*6.T.>大于‘A’>‘1’.T.=等于2+4=3*5.F.<>、#、!=不等于5<>-10.T.<=小于或等于'abc'<='AB'.F.>=大于或等于{^2010-10-02}>={^2010-09-20}.T.==字符串恒同‘abc’==’abcabc’.F.(1)关系表达式:由关系运算符、数值表达式、字符表达式或日期表达式组合而成的式子,返回结果为逻辑值。(2)关系运算符的两边,可以是字符表达式、数值表达式或者日期表达式,但两边的数据类型必须一致才能进行比较。字符数据的比较单个字符字符串以字符ASCII码的大小,作为字符的“大小”,也就是先后顺序,先空格,后小写字母,后大写字母;汉字系统默认按汉字的拼音排列汉字的顺序,也就是以汉字的拼音顺序比较“大小”字符串关系表达式基本原则从左到右逐个字符进行比较但因系统相关设置状态不同,比较的结果与预期的不完全相同。VFP中字符的排序序列:⑴机器序列
按字符ASCII码值排序:空格<数字<大写字母<小写字母<一级汉字<二级汉字⑵拼音序列汉字按拼音排序,西文字符的序列是:空格<数字<字母(小写字母<大写字母)<汉字⑶笔画序列汉字按笔画排序,西文字符的序列是:空格<数字<字母(小写字母<大写字母)<汉字系统默认的字符序列为拼音,可在选项对话框或SETCOLLATE命令重新设置。SetCollateto“Machine”|”Pinyin”|“Stroke”字符串关系表达式——大小比较用运算符<或>进行两串比较时,比较到第1个不相同字符为止,否则,长度较长的串较“大”;如:“are”<“ab”
&&返回的结果为.F.,首先进行第一位字符的比较,如果相同则比较第二位字符的大小,依次类推。?“a”<“abc”&&.T.
?"a"<"A"&&.T.?“李”<“王”&&.T.这个结果绝对吗?字符串关系表达式——相等比较默认字符串的等于(=)比较是指定非精确比较,即:只要右边的字符串与左边字符串的前面部分内容相匹配,则为真。可以set
exacton/off
设置是否精确比较;精确比较则首先通过在字符串后面加空格的方法使两者长度相等,再进行比较。?”王林兵”=“王林”
&&
模糊比较下为.T.
?”王林兵”=“王林”
&&
精确比较下先变为”王林兵”=“王林
”,然后逐字符进行比较,为.F.。用运算符==进行两串的恒同比较时,不论SETEXACT的设置如何,只有当两串长度相同,字符相同,排列一致时才成立;?”王林兵”
==“王林”
&&
模糊比较下为.F.
?”王林兵”
==“王林”
&&
精确比较下为.F.字符串精确比较示例Setexacton?‘BCDE’=‘BC’&&.F.?‘BC’=‘BCDE’&&.F.?‘BC’=‘BC’&&.T.?‘BC’=‘BC’&&.T.?‘BCDE’=‘BCDE’&&.T.Setexactoff?‘BCDE’=‘BC’&&.T.?‘BC’=‘BCDE’&&.F.?‘BC’=‘BC’&&.T.?‘BC’=‘BC’&&.F.?‘BCDE’=‘BCDE’&&.T.在使用‘=’进行字符串比较时,其结果受setexact命令设置的系统环境的影响。在setexacton时,在字符串不等长时,首先通过在字符串后面加空格的方式时两个字符串相等,然后再比较;在setexactoff时,如果‘=’右边的字符串长度比左边的短,则左边的字符串取同右边长度相同的子字符串参加比较。472.3.5逻辑运算符及逻辑表达式运算符功能优先级别()圆括号最高||最低.NOT.或!
逻辑非.AND.
逻辑与.OR.
逻辑或逻辑表达式:由逻辑运算符、逻辑型常量、逻辑型内存变量、逻辑型数组、返回逻辑型数据的函数和关系表达式组成,结果为逻辑型常量。逻辑与运算(AND)AL1L2串联电路中,当灯泡L1与L2同时亮时,安培表中才有电流。ABAANDB.T..T..T..T..F..F..F..T..F..F..F..F.逻辑或运算(OR)AL1L2并联电路中,灯泡L1和L2中有一个亮,安培表中即有电流。ABAORB.T..T..T..T..F..T..F..T..T..F..F..F.ABA.AND.BA.OR.B.NOTA.T..T..T..T..F..T..F..F..T..F..F..T..F..T..T..F..F..F..F..T.示例:8>3.AND.8<10“A”>“C”.OR.“A”<“C”.NOT.5<6逻辑与、或、非运算关系表空值NULL运算逻辑运算A=.T.A=.F.A=.NULLA.AND.NULL.NULL.F..NULL.A.OR.NULL.T..NULL..NULL..NOT.A.F..T..NULL.逻辑型数据的判断对于以逻辑型字段进行逻辑判断的情况,一般不用关系表达式而直接用逻辑表达式。如“性别”是一个逻辑型字段,并约定“真”表示男性,“假”表示女性。判断某记录对应人员是否为男性,用FOR性别,而不用FOR性别=.T.,判断是否为女性,用FOR.NOT.性别,不用FOR性别=.F.2.3.6操作符的运算优先级53字符运算符日期和时间运算符算术运算符关系运算符逻辑运算符高低算术运算符字符串运算符最高级一元运算符“+”和“-”(正负号)**或^(乘方)*、/、和%(乘、除和余数)+和-(加和减)+和-(精确连接和非精确连接)+和-(加和减)日期运算符
关系运算符<、>、=、<=、>=、<>、#、!=、$、==各运算符优先级相同次高级逻辑运算符.NOT.或!(逻辑非).AND.(逻辑与).OR.(逻辑或)最低级练习2*3^2+2*8/4+3^2Date()={^2012-03-25}.OR..T..AND..F.250+80<27+6-3"250+80"<"27+6-3“18-5>2+3.and.5*2=1012>2.and."人">"人民“((10%3=1)and(15%2=0)).OR."电脑"<>"计算机“((10%3=1)and(15%2=0)).OR.NOT"电脑"<>"计算机"31.00.F..F..T..T..F..T..F.2.4函数56函数是一个预先编制好的计算模块,可在VFP的任何地方被调用。系统函数数据类型类函数字符函数、数值函数、日期时间函数、测试函数、数据转换函数数据库类函数环境类函数输入输出类函数程序设计类函数用户自定义函数2.4.1字符函数57字符及字符串处理函数的处理对象均为字符型数据,但其返回值类型却各异。(1)求子串位置函数AT(左字符串,右字符串)——查找左字符串在右字符串中第一次出现的位置,区分大小写,其返回值类型为数值型,从最左边开始记数,不在,则返回0。
?AT(‘fa','myfather')
......3ATC(左字符串,右字符串)——不区分大小写,查找左字符串在右字符串中第一次出现的位置。
X=ATC(‘fa','myFather')
?X
......32.4.1字符函数58(2)求字符串长度函数LEN(字符表达式)——返回字符表达式中字符的数目,为数值型数据。
?Len('ssdd')&&9?Len(“ABCDF”)?Len(“ABCDF”)X=“首都经贸大学”?Len(X)2.4.1字符函数59(3)删除空格函数ALLTRIM(字符表达式)函数——删除指定字符表达式的前后空格符。
TRIM(字符表达式)函数——删除指定字符表达式尾部的空格符。LTRIM(字符表达式)函数——删除指定字符表达式前面的空格符。2.4.1字符函数60(4)字符串匹配函数LIKE(字符表达式1,字符表达式2)函数——比较字符表达式1是否与字符表达式2相匹配,是则返回逻辑真,否则返回逻辑假。说明:字符表达式1中可以包含通配符*和?,*可以与任何数目的字符相匹配,?则只能与单个字符相匹配。如:x=“计算机软件”
y=“计算机”
?LIKE(y,x),LIKE(X,Y),LIKE(“计算*”,y),LIKE(“计算*”,x),LIKE(“计算?”,y),LIKE(“计算?”,x),LIKE(“计算??”,y)
&&.F..F..T..T..F..F..T.2.4.1字符函数61(5)取子串函数SUBSTR(字符表达式,取子串的起始位置[,取子串的长度])函数——从选取的字符串表达式中选取指定长度的子串。LEFT(字符表达式,取子串的长度)——从字符表达式最左边字符开始,返回指定数目的字符。RIGHT(字符表达式,取子串的长度)——从字符表达式最右边字符开始,返回指定数目的字符。例如:STOR"1995/03/12"tocsrq?subs(csrq,1,4)+”年”+subs(csrq,6,2)+”月”+subs(csrq,9,2)+”日”&&结果为“1995年03月12日”?left(‘1995/03/13’,4)&&显示“1995”?Right(‘1995/03/13’,2)&&显示“13”?Substr(“城市经济”,5,4)&&显示“经济”?Substr(“城市经济”,2,4)&&显示:????2.4.1字符函数63(6)空格函数SPACE(n)函数——返回由指定数目空格构成的字符串。?SAPCE(5)?‘1’+SPACE(3)+‘ABC’&&‘1ABC’
2.4.2数值函数64(1)绝对值函数ABS(数值)——求绝对值(2)最大/小数MAX(数值1,数值2,....数值N)——求最大值MIN(数值1,数值2,....数值N)——求最小值(3)取整函数INT(n)函数——整数部分。?int(-12.5)&&显示数值-12(4)求余函数
MOD(数值1,数值2)——返回数值1除以数值2的余数,余数的小数位数与数值1相同,符号与数值2相同。?MOD(9,2)
&&1?MOD(9,-2)
&&-1?MOD(-9,2)
&&1?MOD(-9,-2)
&&-12.4.2数值函数65(5)四舍五入函数ROUND(<数值表达式1>,<数值表达式2>)——返回数值表达式1四舍五入的值,数值表达式2表示保留的小数位数。示例:?ROUND(345.6799,3)&&345.680?ROUND(345.6799,0)&&346?ROUND(345.6799,-2)&&300(6)求平方根函数SQRT(<数值表达式>)——返回数值表达式的平方根。(7)随机函数RAND()——返回0~1之间的随机数。2.4.3日期函数66DATE()——返回系统日期DATETIME()——返回当前系统日期和时间Time()——返回当前系统时间DAY()——返回日期或时间中的日数YEAR——返回日期或时间中的年数MOTH()——返回日期或时间中的月份数DOW()——返回日期是一周中的第几天如何利用日期函数设计南京青奥会倒计时Tolp={^2014/08/16}?“距离南京青奥会开幕还有”,tolp-date(),’天!’综合习题要求在主窗口自动分行显示如下内容:“今天是:”显示当前日期,“是星期”几“距离五一节还有××天”672.4.4转换函数68(1)将数值转换为字符串
STR(数值表达式,长度,小数位)
——将数值表达式的值转换为对应的字符串。
长度包括小数点所占字符和小数点右边数字所占的字符。不加表示默认长度为10位,小数位数默认为0位。
如果指定长度大于整个数值的宽度,用前导空格填充返回的字符串;
如果指定长度小于数值的整数部分的数字位数,则返回一串星号,表示数值溢出;
如果指定的小数位数小于数值中的小数位数,则四舍五入截断多余的数字。示例:x=123.456
?Str(x)
.......'
123'
?Str(x,5)
.......'
123'
?Str(x,7,2)
.......'123.46'
?Str(x,2)
.......**
?Str(x,5,2)
.......‘123.5’
//指定的宽度不够数值的宽度,则首先保证数值的整数。
?Str(x,3,2)
......‘123’2.4.4转换函数70(2)将字符串转换为数值VAL(C表达式)——将由数字、小数点、正负号组成的字符型数据转换成相应的数值型数据,转换结果取两位小数。该表达式最多可由16位数字字符组成,若超过16位,则对其取整,其中小数位数为2。如果字符串内出现非数字字符,则只转换前面数字字符部分;如字符串的首字符不为数字字符(空格除外),则返回0值。示例:STORE'22'tox1STORE'23'tox2?val(x1)+val(x2)&&显示45.00'STORE'1.25E3'tox3?2*val(x3)&&显示2500.00x="-123.4567“y="23"z="123abc45.567“a="1245avc“b="wre123"?val(x),val(y),val(z),val(a),val(b)则结果返回-123.46,23.00,123.00,1245.00,0.00
2.4.4转换函数(3)返回字符ASCII码函数
ASC()函数——返回字符表达式最左边字符的ASCII码(4)返回ASCII对应的字符函数
CHR()函数——返回ASCII码为数值表达式值的字符注:数值表达式的值必须在0~255之间。722.4.4转换函数73(5)字符转化为日期或时间型数据
CTOD(字符串)——将字符类型的日期转换成日期类型的日期
CTOT(字符串)——把字符表达式转换成日期时间表达式setdatetomdysetcenturyonx='01/27/2002'y='01/27/200211:12:45'
?ctod(x),ctod(y),ctot(y)
&&结果为01/27/2002//01/27/200211:12:45AM2.4.4转换函数74(6)将日期或日期时间转换成字符串DTOC(日期或时间[,1])函数——把日期型或日期时间数据中的日期转换为字符串。TTOC(时间[,1|2])函数——把把日期时间型数据转换为字符串。例如:x={^2002-01-27}y={^2002-01-2711:12:45}setdatetomdysetcenturyon?dtoc(x),dtoc(y),ttoc(y)
2.4.5其他函数75(7)条件判断函数IIF(逻辑表达式,A,B)——根据逻辑表达式的值,返回A和B中的某一个,如表达式为T,则返回A,否则返回B。A和B的类型可以为字符、数值、货币、日期或日期时间型的表达式。例如:?IIF(12<13,‘WANG1’,23=34.6)&&WANG1Y=1x>0-1x<=0Y=IIF(X>0,1,-1)Y=IIF(X>0,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版风机发电项目投资采购合同3篇
- 2025版办公租赁合同及配套设施服务协议3篇
- 北方工业大学《思想政治学科课程与教学论》2023-2024学年第一学期期末试卷
- 二零二五年别墅门窗定制安装与售后服务合同范本2篇
- 2025版高端住宅小区专业保安服务承包合同2篇
- 保定电力职业技术学院《信号处理综合实训》2023-2024学年第一学期期末试卷
- 宝鸡中北职业学院《自动控制系统》2023-2024学年第一学期期末试卷
- 宝鸡中北职业学院《工程热力学与传热学》2023-2024学年第一学期期末试卷
- 宝鸡文理学院《教师艺术技能训练》2023-2024学年第一学期期末试卷
- 2025版集团高层管理人员竞聘与聘任协议书6篇
- 穿越河流工程定向钻专项施工方案
- 地球物理学进展投稿须知
- 机床精度检验标准 VDI3441 a ISO230-2
- 社会主义新农村建设建筑废料利用探究
- 解析电力施工项目的信息化管理
- 火炬介绍 音速火炬等
- 制剂申请书(共16页)
- 《质量守恒定律》评课稿
- 人教版七年级上册地理《第4章居民与聚落 第3节人类的聚居地——聚落》课件
- 对县委常委班子及成员批评意见范文
- 数据中心IDC项目建议书
评论
0/150
提交评论