1、isualFVoxPro13.1 Visual FoxPro的数据类型的数据类型3.2 Visual FoxPro的常量与变量的常量与变量3.3 Visual FoxPro的内部函数的内部函数3.4 Visual FoxPro的表达式的表达式21字符型字符型字符型(字符型(Character)数据是不能进行算术运算的数据是不能进行算术运算的文字数据类型,用字母文字数据类型,用字母C表示。字符型数据包表示。字符型数据包括中文字符、英文字符、数字字符和其他括中文字符、英文字符、数字字符和其他ASCII字符,其长度(即字符个数)范围是字符,其长度(即字符个数)范围是0254个字符。个字符。3.1 3
2、.1 Visual FoxProVisual FoxPro的数据类型的数据类型32数值型数值型数值型(数值型(Numeric)数据是表示数量并可以数据是表示数量并可以进行算术运算的数据类型,用字母进行算术运算的数据类型,用字母N表示。表示。数值型数据由数字、小数点和正负号组成。数值型数据由数字、小数点和正负号组成。数值型数据在内存中占用数值型数据在内存中占用8个字节,相应的个字节,相应的字段变量其长度(数据位数)最大字段变量其长度(数据位数)最大20位。位。在在Visual FoxPro中,具有数值特征的数据中,具有数值特征的数据类型还有整型(类型还有整型(Integer)、)、浮点型(浮点型
3、(Float)和双精度型(和双精度型(Double),),不过这不过这3种数据类种数据类型只能用于字段变量。型只能用于字段变量。43货币型货币型 货币型(货币型(Currency)数据是为存储货币值而使用的一数据是为存储货币值而使用的一种数据类型,它默认保留种数据类型,它默认保留4位小数,占据位小数,占据8字节存储字节存储空间。货币型数据用字母空间。货币型数据用字母Y表示。表示。4日期型日期型日期型(日期型(Date)数据是表示日期的数据,用字母数据是表示日期的数据,用字母D表表示。日期的默认格式是示。日期的默认格式是mm/dd/yy,其中其中mm表示表示月份,月份,dd表示日期,表示日期,y
4、y表示年度,年度也可以是表示年度,年度也可以是4位。日期型数据的长度固定为位。日期型数据的长度固定为8位。日期型数据的位。日期型数据的显示格式有多种,它受系统日期格式设置的影响。显示格式有多种,它受系统日期格式设置的影响。55日期时间型日期时间型 日期时间型(日期时间型(Date Time)数据是表示日期和时间数据是表示日期和时间的数据,用字母的数据,用字母T表示。日期时间的默认格式表示。日期时间的默认格式是是mm/dd/yyyy hh:mm:ss,其中其中mm、dd、yyyy的意的意义与日期型相同,而义与日期型相同,而hh表示小时,表示小时,mm表示分钟,表示分钟,ss表示秒数。日期时间型数
5、据也是采用固定长度表示秒数。日期时间型数据也是采用固定长度8位,位,取值范围是:日期为取值范围是:日期为01/01/000112/31/9999,时间,时间为为00:00:0023:59:59。如。如08/16/2003 10:35:30表表示示2003年年8月月16日日10时时35分分30秒这一日期和时间。秒这一日期和时间。66逻辑型逻辑型逻辑型(逻辑型(Logic)数据是描述客观事物真假数据是描述客观事物真假的数据类型,表示逻辑判断的结果,用字的数据类型,表示逻辑判断的结果,用字母母L表示。逻辑型数据只有真(表示。逻辑型数据只有真(.t.或或.y.)和和假(假(.f.或或.n.)两种,长度
6、固定为两种,长度固定为1位。位。77备注型备注型 备注型(备注型(Memo)数据是用于存放较多字符的数据数据是用于存放较多字符的数据类型,用字母类型,用字母M表示。备注型数据没有数据长度限表示。备注型数据没有数据长度限制,仅受限于磁盘空间。它只用于表中字段类型的制,仅受限于磁盘空间。它只用于表中字段类型的定义,字段长度固定为定义,字段长度固定为4个字节,实际数据存放在个字节,实际数据存放在与表文件同名的备注文件(与表文件同名的备注文件(.fpt)中,长度根据数中,长度根据数据的内容而定。据的内容而定。88通用型通用型通用型(通用型(General)数据是存储数据是存储OLE(对象链对象链接与嵌
7、入)对象的数据类型,用字母接与嵌入)对象的数据类型,用字母G表示。表示。通用型数据中的通用型数据中的OLE对象可以是电子表格、文对象可以是电子表格、文档、图形、声音等。它只用于表中字段类型的档、图形、声音等。它只用于表中字段类型的定义。通用型数据字段长度固定为定义。通用型数据字段长度固定为4位,实际位,实际数据长度仅受限于磁盘空间。数据长度仅受限于磁盘空间。9二进制字符型和二进制备注型二进制字符型和二进制备注型这两类数据是以二进制格式存储的数据类型,这两类数据是以二进制格式存储的数据类型,只能用在表中字段数据的定义。所存储的数据只能用在表中字段数据的定义。所存储的数据不受代码页改变的影响。不受
8、代码页改变的影响。93.2.1 常量常量1字符型常量字符型常量 字符型常量是用定界符括起来的一串字符。在字符型常量是用定界符括起来的一串字符。在Visual FoxPro中,定界符有中,定界符有3种:单撇号、双撇号种:单撇号、双撇号和方括号。如和方括号。如Central South University、410075、教授教授等都是字符型常量。等都是字符型常量。如果某一种定界符本身是字符型常量中的字符,就如果某一种定界符本身是字符型常量中的字符,就应选择另一种定界符。例如,应选择另一种定界符。例如,Thats right!表示表示字符常量字符常量:Thats right!,含有含有13个字符。
9、个字符。3.2 3.2 Visual FoxProVisual FoxPro的常量与变量的常量与变量102数值型常量数值型常量 数值型常量就是平时所讲的常数,由数字、小数数值型常量就是平时所讲的常数,由数字、小数点和正负号组成。在点和正负号组成。在Visual FoxPro中,数值型常中,数值型常量有两种表示方法:小数形式和指数形式。如量有两种表示方法:小数形式和指数形式。如75、-3.75是小数形式的数值型常量。指数形式通常用是小数形式的数值型常量。指数形式通常用来表示那些绝对值很大或很小、而有效位数不太来表示那些绝对值很大或很小、而有效位数不太长的一些数值,对应于日常应用中的科学记数法。长
10、的一些数值,对应于日常应用中的科学记数法。11指数形式用字母指数形式用字母E来表示以来表示以10为底的指数,为底的指数,E左边为数字部分,称为尾数,右边为指左边为数字部分,称为尾数,右边为指数部分,称为阶码。阶码只能是整数,尾数部分,称为阶码。阶码只能是整数,尾数可以是整数,也可以是小数。尾数与阶数可以是整数,也可以是小数。尾数与阶码均可正可负。例如,常量码均可正可负。例如,常量0.694710-6、4.9523109分别用指数形式表示为分别用指数形式表示为0.6947E-6、4.9523E9。123货币型常量货币型常量货币型常量的书写格式与数值型常量类似,但要加上货币型常量的书写格式与数值型
11、常量类似,但要加上一个前置的一个前置的$。货币型数据在存储和计算时,采用。货币型数据在存储和计算时,采用4位小数。如果一个货币型常量多于位小数。如果一个货币型常量多于4位小数,那么位小数,那么系统会自动将多余的小数位四舍五入。例如,货币系统会自动将多余的小数位四舍五入。例如,货币型常量型常量$3.1415926将存储为将存储为$3.1416。货币型常量不。货币型常量不能采用指数形式。能采用指数形式。4日期型常量日期型常量日期型常量要放在一对花括号中,花括号内包括年、日期型常量要放在一对花括号中,花括号内包括年、月、日月、日3部分内容,各部分内容之间用分隔符分隔。部分内容,各部分内容之间用分隔符
12、分隔。分隔符可以是分隔符可以是/、-、.等。等。Visual FoxPro的默认日期的默认日期格式是格式是mm/dd/yyyy。135日期时间型常量日期时间型常量 日期时间型常量也要放在一对花括号中,其中既含日期时间型常量也要放在一对花括号中,其中既含日期又含时间。日期的格式与日期型常量相同,时日期又含时间。日期的格式与日期型常量相同,时间包括时、分、秒,时分秒之间用间包括时、分、秒,时分秒之间用“:”分隔。日期分隔。日期时间型常量的默认格式是:时间型常量的默认格式是:mm/dd/yyyy,hh:mm:ssa|p 其中其中hh、mm、ss的默认值分别为的默认值分别为12、0和和0。a和和p分别
13、表示分别表示AM(上午)和上午)和PM(下午),默认为下午),默认为AM。如果指定时间大于等于如果指定时间大于等于12,则自然为下午的时间。,则自然为下午的时间。14 日期值和日期时间值的输入格式与输出格式并不完日期值和日期时间值的输入格式与输出格式并不完全相同,特别是输出格式受系统环境设置的影响,全相同,特别是输出格式受系统环境设置的影响,用户可根据应用需要进行相应设置。下面介绍有关用户可根据应用需要进行相应设置。下面介绍有关命令。命令。(1)日期格式中的世纪值)日期格式中的世纪值 通常日期格式中用通常日期格式中用2位数表示年份,但涉及到世纪位数表示年份,但涉及到世纪问题就不便区分。问题就不
14、便区分。Visual FoxPro提供设置命令对此提供设置命令对此进行相应设置。进行相应设置。命令格式:命令格式:SET CENTURY ON|OFF|TO nCentury15命令功能:用于设置显示日期时是否显示世纪。命令功能:用于设置显示日期时是否显示世纪。其中,其中,ON表示日期值输出时显示年份值,即日表示日期值输出时显示年份值,即日期数据显示期数据显示10位,年份占位,年份占4位。位。OFF(默认值)默认值)表示日期值输出时不显示年份值,即日期数据显表示日期值输出时不显示年份值,即日期数据显示示8位,年份占位,年份占2位。位。TO nCentury指定日期数指定日期数据所对应的世纪值,
15、据所对应的世纪值,nCentury是一个是一个199的整的整数,代表世纪数。数,代表世纪数。16(2)设置日期显示格式)设置日期显示格式用户可以调整、设置日期的显示输出格式。用户可以调整、设置日期的显示输出格式。命令格式:命令格式:SET DATE TO AMERICAN|ANSI|BRITISH|FRENCH|GERMAN|ITLIAN|JAPAN|USA|MDY|DMY|YMD|SHORT|LONG命令功能:设置日期的显示输出格式。系统默认为命令功能:设置日期的显示输出格式。系统默认为AMERICAN(美国日期格式)。如果日期格式设美国日期格式)。如果日期格式设置为置为SHORT或或LON
16、G格式,格式,Visual FoxPro将按将按Windows系统设置的短日期格式或长日期格式显示系统设置的短日期格式或长日期格式显示输出日期数据,而且输出日期数据,而且SET CENTURY命令的设置被命令的设置被忽略。忽略。17(3)设置日期分隔符)设置日期分隔符命令格式:命令格式:SET MARK TO 日期分隔符日期分隔符命令功能:设置显示日期时使用的分隔符,如命令功能:设置显示日期时使用的分隔符,如/、-、.等。如没有指定任何分隔符,则恢复系统默认的斜等。如没有指定任何分隔符,则恢复系统默认的斜杠分隔符。杠分隔符。(4)设置日期)设置日期2000年兼容性年兼容性通常日期型和日期时间型
17、数据的结果,通常日期型和日期时间型数据的结果,与与SET DATE命令和命令和SET CENTURY命令设置状态及当前系统时命令设置状态及当前系统时间有关。由于系统时间与相应设置不同,同一数据间有关。由于系统时间与相应设置不同,同一数据的结果可能有不同的解释。如日期值的结果可能有不同的解释。如日期值10/11/12可以可以解释为解释为1912年年10月月11日、日、2012年年10月月11日、日、1912年年11月月10日、日、1910年年11月月12日或者日或者2010年年11月月12日等。日等。这显然会导致系统混乱,而且还可能造成这显然会导致系统混乱,而且还可能造成2000年兼年兼容性错误
18、,影响系统正常运行。容性错误,影响系统正常运行。18 Visual FoxPro增加了一种所谓严格的日期格式。不增加了一种所谓严格的日期格式。不论哪种设置,按严格日期格式表示的日期型和日期论哪种设置,按严格日期格式表示的日期型和日期时间型数据,都具有相同的值和表示形式。严格的时间型数据,都具有相同的值和表示形式。严格的日期格式是日期格式是:yyyy-mm-dd,hh:mm:ssa|p 其中,其中,表明该格式是严格的日期格式,并按照表明该格式是严格的日期格式,并按照YMD的格式解释日期型和日期时间型数据,它是严格日的格式解释日期型和日期时间型数据,它是严格日期格式的标志,不可缺少。有效的日期型和
19、日期时期格式的标志,不可缺少。有效的日期型和日期时间型数据分隔符为:间型数据分隔符为:/、-、.和空格。如和空格。如2003-08-16、2003-08-16 10:35:30a,分别以严格的日期分别以严格的日期格式表示格式表示2003年年8月月16日及该日上午日及该日上午10时时35分分30秒。秒。19 Visual FoxPro默认采用严格的日期格式,并以此检默认采用严格的日期格式,并以此检测所有日期型和日期时间型数据的格式是否规范、测所有日期型和日期时间型数据的格式是否规范、合法。合法。命令格式:命令格式:SET STRICTDATE TO 0|1|2命令功能:用于设置是否对日期格式进行
20、检测。其中,命令功能:用于设置是否对日期格式进行检测。其中,0表示不进行严格的日期格式检测。表示不进行严格的日期格式检测。1表示进行严格表示进行严格的日期格式检测(默认值),要求所有日期型和日的日期格式检测(默认值),要求所有日期型和日期时间型数据均按严格的格式。期时间型数据均按严格的格式。2表示进行严格的表示进行严格的日期格式检测,并且对日期格式检测,并且对CTOD和和CTOT函数的格式函数的格式也有效。省略各选项时,恢复系统默认值,等价于也有效。省略各选项时,恢复系统默认值,等价于1的设置。的设置。20除了利用命令方式设置外,也可以用菜单除了利用命令方式设置外,也可以用菜单方式进行设置设置
21、。方式进行设置设置。在在“工具工具”菜单中选菜单中选择择“选项选项”,将打开,将打开“选项选项”对话框,在对话框,在“区域区域”选项卡中可以设置日期和时间的选项卡中可以设置日期和时间的显示格式。在显示格式。在“常规常规”选项卡中可以设置选项卡中可以设置2000年兼容性。年兼容性。216逻辑型常量逻辑型常量 逻辑型常量表示逻辑判断的结果,只有逻辑型常量表示逻辑判断的结果,只有“真真”和和“假假”两种值。在两种值。在Visual FoxPro中,逻辑真中,逻辑真用用.T.、.t.、.Y.或或.y.表示,逻辑假用表示,逻辑假用.F.、.f.、.N.或或.n.表示。注意字母前后的圆点一定不能丢。表示。
22、注意字母前后的圆点一定不能丢。223.4.2 变量变量 变量是在操作过程中可以改变其值的数据对象。在变量是在操作过程中可以改变其值的数据对象。在Visual FoxPro中变量分为字段变量、内存变量、数中变量分为字段变量、内存变量、数组变量和系统变量组变量和系统变量4类。此外,作为面向对象的程类。此外,作为面向对象的程序设计语言,序设计语言,Visual FoxPro在进行面向对象的程序在进行面向对象的程序设计中引入了对象的概念,对象实质上也是一类变设计中引入了对象的概念,对象实质上也是一类变量。确定一个变量,需要确定其量。确定一个变量,需要确定其3个要素:变量名、个要素:变量名、数据类型和变
23、量值。数据类型和变量值。231命名规则命名规则(1)使用字母、汉字、下划线和数字命名。)使用字母、汉字、下划线和数字命名。(2)命名以字母或下划线开头。除自由表中)命名以字母或下划线开头。除自由表中字段名、索引的字段名、索引的TAG标识名最多只能标识名最多只能10个字个字符外,其他的命名可使用符外,其他的命名可使用1128个字符。个字符。(3)为避免误解、混淆,避免使用)为避免误解、混淆,避免使用Visual FoxPro的保留字。的保留字。(4)文件名的命名应遵循操作系统的约定。)文件名的命名应遵循操作系统的约定。242字段变量字段变量 字段变量就是表中的字段名,它是表中最基本的数字段变量就
24、是表中的字段名,它是表中最基本的数据单元。字段变量是一种多值变量,一个表有多少据单元。字段变量是一种多值变量,一个表有多少条记录,那么该表的每一字段就有多少个值,当用条记录,那么该表的每一字段就有多少个值,当用某一字段名做变量时,它的值就是表记录指针所指某一字段名做变量时,它的值就是表记录指针所指的那条记录对应字段的值。字段变量的类型可以的那条记录对应字段的值。字段变量的类型可以是是Visual FoxPro的任意数据类型。字段变量的名字、的任意数据类型。字段变量的名字、类型、长度等是在定义表结构时定义的。类型、长度等是在定义表结构时定义的。253内存变量内存变量 Visual FoxPro中
25、,除了字段变量外,还有一种变中,除了字段变量外,还有一种变量,它独立于表,是一种临时工作单元,称为内量,它独立于表,是一种临时工作单元,称为内存变量。内存变量的类型有字符型、数值型、货存变量。内存变量的类型有字符型、数值型、货币型、逻辑型、日期型和日期时间型等。币型、逻辑型、日期型和日期时间型等。可直接用内存变量名对内存变量进行访问,但若可直接用内存变量名对内存变量进行访问,但若它与字段变量同名时,则应该用如下格式进行访它与字段变量同名时,则应该用如下格式进行访问:问:M.内存变量名内存变量名 M-内存变量名内存变量名26(1)内存变量的赋值)内存变量的赋值给内存变量赋值的命令有两种格式:给内
26、存变量赋值的命令有两种格式:=STORE TO 该命令先计算表达式的值,然后将表达式的值赋给一该命令先计算表达式的值,然后将表达式的值赋给一个或几个内存变量。第一种格式只能给一个内存变个或几个内存变量。第一种格式只能给一个内存变量赋值。第二种格式可以同时给多个内存变量赋相量赋值。第二种格式可以同时给多个内存变量赋相同的值,各内存变量名之间用逗号分隔。内存变量同的值,各内存变量名之间用逗号分隔。内存变量的数据类型取决于表达式值的类型。可以通过对内的数据类型取决于表达式值的类型。可以通过对内存变量重新赋值来改变其值和类型。存变量重新赋值来改变其值和类型。27(2)内存变量的显示)内存变量的显示可以
27、用命令显示当前已定义的内存变量的有关信息,可以用命令显示当前已定义的内存变量的有关信息,包括变量名、作用域、类型和取值。命令格式为:包括变量名、作用域、类型和取值。命令格式为:DISPLAY MEMORY LIKE TO PRINTERTO FILE L I S T M E M O R Y L I K E T O PRINTERTO FILE 其中,其中,LIKE选项表示显示与通配符相匹配的内存变选项表示显示与通配符相匹配的内存变量,在量,在中允许使用符号中允许使用符号?和和*,分别代表单,分别代表单个字符和多个字符。个字符和多个字符。TO PRINTER或或TO FILE 选项可将内存变量的
28、有关信息在打印机上打选项可将内存变量的有关信息在打印机上打印出来,或者以给定的文件名存入文本文件中(扩印出来,或者以给定的文件名存入文本文件中(扩展名为展名为.txt)。)。28 LIST命令一次显示所有内存变量,如果内存命令一次显示所有内存变量,如果内存变量多,一屏显示不下,则连续向上滚动。而变量多,一屏显示不下,则连续向上滚动。而DISPLY命令分屏显示所有内存变量,如果内命令分屏显示所有内存变量,如果内存变量多,显示一屏后暂停,按任意键后再继存变量多,显示一屏后暂停,按任意键后再继续显示下一屏。续显示下一屏。29(3)内存变量文件的建立)内存变量文件的建立将所定义的内存变量的各种信息全都
29、保存到一个文件将所定义的内存变量的各种信息全都保存到一个文件中,该文件称为内存变量文件。其默认的扩展名中,该文件称为内存变量文件。其默认的扩展名为为.mem。建立内存变量文件命令的格式为:建立内存变量文件命令的格式为:SAVE TO ALL LIKE|EXCEPT 其中,其中,ALL表示将全部内存变量存入文件中。表示将全部内存变量存入文件中。ALL LIKE 表示内存变量中所有与通配符相匹表示内存变量中所有与通配符相匹配的内存变量都存入文件。配的内存变量都存入文件。ALL EXCEPT 表示把与通配符不匹配的全部内存变量存入文件表示把与通配符不匹配的全部内存变量存入文件中。中。30(4)内存变
30、量的恢复)内存变量的恢复内存变量的恢复是指将已存入内存变量文件中的内存内存变量的恢复是指将已存入内存变量文件中的内存变量从文件中读出,装入内存中。其命令格式为:变量从文件中读出,装入内存中。其命令格式为:RESTORE FROM ADDITIVE若命令中含有若命令中含有ADDITIVE任选项,系统不清除内存中任选项,系统不清除内存中现有的内存变量,并追加文件中的内存变量。现有的内存变量,并追加文件中的内存变量。31(5)内存变量的清除)内存变量的清除清除内存变量并释放相应的内存空间,所采用命清除内存变量并释放相应的内存空间,所采用命令的格式为:令的格式为:CLEAR MEMORYRELEASE
31、 ALL LIKE|EXCEPT 其中第一条命令是清除所有的内存变量,第二条其中第一条命令是清除所有的内存变量,第二条命令是清除指定的内存变量。命令是清除指定的内存变量。324数组变量数组变量在在Visual FoxPro中,数组变量被定义为一组变量的中,数组变量被定义为一组变量的集合,这些变量可以具有不同的数据类型。数组集合,这些变量可以具有不同的数据类型。数组由数组元素组成,每个数组元素就相当于一个内由数组元素组成,每个数组元素就相当于一个内存变量,它可以用数组名后接顺序号来表示,顺存变量,它可以用数组名后接顺序号来表示,顺序号也叫下标。序号也叫下标。(1)数组的定义)数组的定义Visua
32、l FoxPro规定,数组在使用之前必须用数组说规定,数组在使用之前必须用数组说明命令进行定义,即定义数据名、维数和大小。明命令进行定义,即定义数据名、维数和大小。其命令格式为:其命令格式为:DIMENSION(,下标上界下标上界2),DECLARE(,下标上界下标上界2),33两条命令的功能完全相同,用于定义一维或二维两条命令的功能完全相同,用于定义一维或二维数组。下标上界是一数值量,下标的下界由系数组。下标上界是一数值量,下标的下界由系统统一规定为统统一规定为1。数组一经定义,它的每个元素都可当作一个内存数组一经定义,它的每个元素都可当作一个内存变量来使用,因此它具有与内存变量相同的性变量
33、来使用,因此它具有与内存变量相同的性质。质。Visual FoxPro命令行中可以使用内存变量命令行中可以使用内存变量的地方都能用数组元素代替。的地方都能用数组元素代替。34(2)数组的赋值)数组的赋值可以使用赋值命令给数组元素赋值,也可以给整个数可以使用赋值命令给数组元素赋值,也可以给整个数组的各个元素赋以相同的值。例如命令:组的各个元素赋以相同的值。例如命令:b=73为上面定义的二维数组为上面定义的二维数组b的的6个元素都赋以同样的值个元素都赋以同样的值73。在没有向数组元素赋值之前,数组元素的初值均为逻在没有向数组元素赋值之前,数组元素的初值均为逻辑假(辑假(.F.)值。值。在在Visu
34、al FoxPro中,二维数组各元素在内存中按行的中,二维数组各元素在内存中按行的顺序存储,它们也可按一维数组元素的顺序来存取顺序存储,它们也可按一维数组元素的顺序来存取数据。如上述二维数组数据。如上述二维数组b中的元素中的元素b(2,1)是排在第是排在第2行第行第1列,由于每一行是列,由于每一行是3个元素,所以个元素,所以b(2,1)也可也可按按b(4)表示。表示。353.3.1 数值函数数值函数 1.求绝对值函数求绝对值函数 格式:格式:ABS()功能:求数值型表达式的绝对值。函数值为数值型。功能:求数值型表达式的绝对值。函数值为数值型。2.求平方根函数求平方根函数 格式:格式:SQRT(
35、)功能:求数值型表达式的算术平方根,数值型表达功能:求数值型表达式的算术平方根,数值型表达式的值应不小于零。函数值为数值型。式的值应不小于零。函数值为数值型。3.求指数函数求指数函数 格式:格式:EXP()功能:将数值型表达式的值作为指数功能:将数值型表达式的值作为指数x,求出求出ex的值。的值。函数值为数值型。函数值为数值型。3.3 3.3 Visual FoxProVisual FoxPro的内部函数的内部函数36 4.求对数函数求对数函数格式:格式:LOG()LOG10()功能:功能:LOG求数值型表达式的自然对数,求数值型表达式的自然对数,LOG10求求数值型表达式的常用对数,数值型表
36、达式的值必须数值型表达式的常用对数,数值型表达式的值必须大于零。函数值为数值型。大于零。函数值为数值型。5.取整函数取整函数格式:格式:INT()CEILING()FLOOR()37功能:功能:INT取数值型表达式的整数部分。取数值型表达式的整数部分。CEILING取大于或等于指定表达式的最小整数。取大于或等于指定表达式的最小整数。FLOOR取小于或等于指定表达式的最大整数。取小于或等于指定表达式的最大整数。函数值均为数值型。函数值均为数值型。举例:举例:x=56.72?INT(x),INT(-x),CEILING(x),CEILING(-x),FLOOR(x),FLOOR(-x)三个函数的值
37、依次为三个函数的值依次为56,-56,57,-56,56,-57。38 6.求余数函数求余数函数 格式:格式:MOD(,)功能:求功能:求除以除以所得出的余数,所得余数的符号和表达式所得出的余数,所得余数的符号和表达式2相同。相同。如果被除数与除数同号,那么函数值即为两数相如果被除数与除数同号,那么函数值即为两数相除的余数。如果被除数与除数异号,则函数值为除的余数。如果被除数与除数异号,则函数值为两数相除的余数再加上除数的值。函数值为数值两数相除的余数再加上除数的值。函数值为数值型。型。39举例:举例:?MOD(25,7),MOD(25,-7),MOD(-25,7),MOD(-25,-7)输出
38、的函数值依次为输出的函数值依次为4,-3,3,-4。显然如果显然如果M除以除以N的余数为的余数为0,则,则M能被能被N整数。例如整数。例如 x=521 x1=INT(x/100)x2=INT(MOD(x,100)/10)x3=MOD(x,10)?x1+10*x2+100*x3输出为输出为125。显然。显然x1、x2、x3分别为分别为x的百、十、个位的百、十、个位数字。数字。40 7.四舍五入函数四舍五入函数格式:格式:ROUND(,)功能:对功能:对求值并保留求值并保留n位小数,从位小数,从n+1位小数起进行四舍五入位小数起进行四舍五入n的值由数值型表达式的值由数值型表达式2确确定定),若,若
39、n小于小于0,则对,则对的整数部分按的整数部分按n的绝对值进行四舍五入。的绝对值进行四舍五入。举例:举例:?ROUND(3.1415*3,2),ROUND(156.78,-1)输出的函数值分别为输出的函数值分别为9.42和和160。418.求最大值和最小值函数求最大值和最小值函数格式格式:MAX(),)MIN(,)功能:功能:MAX求求n个表达式中的最大值,个表达式中的最大值,MIN求求n个表个表达式中的最小值。表达式的类型可以是数值型、字达式中的最小值。表达式的类型可以是数值型、字符型、货币型、浮点型、双精度型、日期型和日期符型、货币型、浮点型、双精度型、日期型和日期时间型,但所有表达式的类
40、型应相同。函数值的类时间型,但所有表达式的类型应相同。函数值的类型与自变量的类型一致。型与自变量的类型一致。42举例:举例:?MAX(2003-08-16,2002-08-16),MIN(助助教教,讲师讲师,副教授副教授,教授教授)输出的函数值分别为输出的函数值分别为08/16/03、副教授。、副教授。9.函数函数格式:格式:PI()功能:返回圆周率功能:返回圆周率的近似值。的近似值。433.3.2 字符函数字符函数字符函数是处理字符型数据的函数,其自变量或字符函数是处理字符型数据的函数,其自变量或函数值中至少有一个是字符型数据。函数值中至少有一个是字符型数据。1.宏代换函数宏代换函数 格式:
41、格式:&.字符表达式字符表达式 功能:代换出一个字符型内存变量的内容。若功能:代换出一个字符型内存变量的内容。若与后面的字符无空格分界,与后面的字符无空格分界,则则&函数后的函数后的“.”必须有。必须有。44举例:举例:i=1 j=2 x12=Good Good=MAX(96/01/02,65/05/01)?x&i.&j,&x12输出的内容依次是输出的内容依次是Good和和48。又如。又如 m=245*SQRT(4)?34+&m输出为输出为524.00。45 2.求字符串长度函数求字符串长度函数 格式:格式:LEN(字符型表达式字符型表达式)功能:求字符串的长度,即所包含的字符个数。功能:求字
42、符串的长度,即所包含的字符个数。若是空串,则长度为若是空串,则长度为0。函数值为数值型。函数值为数值型。3.求子串位置函数求子串位置函数格式:格式:AT(,)ATC(,)功能:若功能:若的值存在于的值存在于的值中,则给出的值中,则给出在在中的开始位置,若不存在,则函数值为中的开始位置,若不存在,则函数值为0。函数值为数值型。函数值为数值型。ATC函数在子串比较时不函数在子串比较时不区分字母大小写。区分字母大小写。46举例:举例:xm=李小四李小四?AT(李李,xm),AT(PRO,Visual FoxPro),ATC(PRO,Visual FoxPro)输出的函数值分别为输出的函数值分别为1、
43、0、11。474.取子串函数取子串函数格式:格式:LEFT(,)RIGHT(字符型表达式字符型表达式,SUBSTR(,功能:功能:LEFT函数从字符型表达式左边的第一个字符函数从字符型表达式左边的第一个字符开始截取子串,开始截取子串,RIGHT函数从字符型表达式右边的函数从字符型表达式右边的第一个字符开始截取子串。若数值型表达式的值大第一个字符开始截取子串。若数值型表达式的值大于于0,且小于等于字符串的长度,则子串的长度与,且小于等于字符串的长度,则子串的长度与数值型表达式值相同。若数值型表达式的值大于字数值型表达式值相同。若数值型表达式的值大于字符串的长度,则给出整个字符串。若数值型的表达符
44、串的长度,则给出整个字符串。若数值型的表达式小于或等于式小于或等于0,则给出一个空字符串。,则给出一个空字符串。48SUBSTR函数对字符型表达式从指定位置开始截取若函数对字符型表达式从指定位置开始截取若干个字符。起始位置和字符个数分别由数值型表达干个字符。起始位置和字符个数分别由数值型表达式式1和数值型表达式和数值型表达式2决定。若字符个数省略,或字决定。若字符个数省略,或字符个数多于从起始位置到原字符串尾部的字符个数,符个数多于从起始位置到原字符串尾部的字符个数,则取从起始位置起,一直到字符串尾的字符串作为则取从起始位置起,一直到字符串尾的字符串作为函数值。若起始位置或字符个数为函数值。若
45、起始位置或字符个数为0,则函数值为,则函数值为空串。显然空串。显然SUBSTR函数可以代替函数可以代替LEFT函数和函数和RIGHT函数的功能。函数的功能。举例:举例:xm=李小四李小四?SUBSTR(xm,1,2),LEFT(xm,1)输出的函数值均为:李。若输出的函数值均为:李。若xm代表职工姓名,则用这代表职工姓名,则用这两个函数可以取出职工的姓。两个函数可以取出职工的姓。495.删除字符串前后空格函数删除字符串前后空格函数格式:格式:LTRIM()RTRIM()ALLTRIM()功能:功能:LTRIM删除字符串的前导空格。删除字符串的前导空格。RTRIM删除字符串的尾部空格。删除字符串
46、的尾部空格。RTRIM亦可写成亦可写成TRIM。ALLTRIM删 除 字 符 串 中 的 前 导 和 尾 部 空 格。删 除 字 符 串 中 的 前 导 和 尾 部 空 格。ALLTRIM函数兼有函数兼有LTRIM和和RTRIM函数的功能。函数的功能。50 6.生成空格函数生成空格函数 格式:格式:SPACE()功能:生成若干个空格,空格的个数由数值型表达功能:生成若干个空格,空格的个数由数值型表达式的值决定。式的值决定。举例:举例:name=SPACE(8)?LEN(LTRIM(name)输出的函数值为输出的函数值为0。517.字符串替换函数字符串替换函数 格式:格式:STUFF(,)功能:
47、用功能:用去替换去替换中中由起始位置开始所指定的若干个字符。起始位置和由起始位置开始所指定的若干个字符。起始位置和字符个数分别由数值型表达式字符个数分别由数值型表达式1和数值型表达式和数值型表达式2指指定。如果字符型表达式定。如果字符型表达式2的值是空串,则字符型表的值是空串,则字符型表达式达式1中由起始位置开始所指定的若干个字符被删中由起始位置开始所指定的若干个字符被删除。除。举例:举例:STORE 中国中国 长沙长沙 TO x?STUFF(x,6,4,北京北京)输出为:中国输出为:中国 北京。北京。52 8.产生重复字符函数产生重复字符函数 格式:格式:REPLICATE(,)功能:重复给
48、定字符串若干次,次数由数值型表达功能:重复给定字符串若干次,次数由数值型表达式给定。式给定。举例:举例:?REPLICATE(*,6)输出为:输出为:*。53 9.大小写字母转函数大小写字母转函数格式:格式:LOWER()UPPER()功能:功能:LOWER将字符串中的大写字母转换成小写。将字符串中的大写字母转换成小写。UPPER将字符串中的小写字母转换成大写。将字符串中的小写字母转换成大写。举例:举例:yn=y?UPPER(yn),LOWER(YES)输出的函数值为:输出的函数值为:Y、yes。在字符串中,同一字母的在字符串中,同一字母的大小写为不同字符,如果利用大小字母转换函数,大小写为不
49、同字符,如果利用大小字母转换函数,就可以不考虑字符串中的字母是大写还是小写。就可以不考虑字符串中的字母是大写还是小写。543.3.3 日期和时间函数日期和时间函数日期时间函数是处理日期型或日期时间型数据的函数。日期时间函数是处理日期型或日期时间型数据的函数。1.系统日期和时间函数系统日期和时间函数格式:格式:DATE()TIME()DATETIME()功能:功能:DATE函数给出当前的系统日期,函数值为函数给出当前的系统日期,函数值为日期型。日期型。TIME函数给出当前的系统时间,形式为函数给出当前的系统时间,形式为hh:mm:ss,函数值为字符型。函数值为字符型。DATETIME函数给出当前
50、的系统日期和时间,函数函数给出当前的系统日期和时间,函数值为日期时间型。值为日期时间型。552.求年份、月份和天数函数求年份、月份和天数函数格式:格式:YEAR(|)MONTH(|)DAY(|)功能:功能:YEAR函数返回日期表达式或日期时间型表达函数返回日期表达式或日期时间型表达式所对应的年份值。式所对应的年份值。MONTH函数返回日期型表达式或日期时间型表达式函数返回日期型表达式或日期时间型表达式所对应的月份,月份以数值所对应的月份,月份以数值112来表示。来表示。DAY函数返回日期型表达式或日期时间型表达式所对函数返回日期型表达式或日期时间型表达式所对应月份里面的天数。应月份里面的天数。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。