当前位置:文档之家› 第2章+visual+foxpro+语言基础实验

第2章+visual+foxpro+语言基础实验

第二章 visual foxpro 语言基础实验内容汇总

实验目的:

掌握各种常量,变量,函数与表达式的表示方法与应用技巧

实验步骤:

打开vfp ,打开命令窗口,在命令窗口中,按照要求输入,查看结果实验准备:

先了解几个概念:

在命令窗口中,可以输入以下几种数据形式:

(1)常量:在所有的操作过程中值不变,值固定的量。

例如: 2.34、“你好!”、{^2014-03-15}等等。

(2)变量:在操作过程中,可以改变值的量。

例如:x=10

y=20

z=x+y

x=6

y=4

z=x*y

(3)函数

例如:date()、time()等等。

(4)运算符

例如:+、-、*、/、<、>等等。

(5)表达式

例如:(x+y)*23-5 、“hello!”+“How are you?”等等。

无论是常量、变量、函数或表达式,都具有某种的数据类型。

数据类型如下表所示。

带*的数据类型——只能应用于表中的字段。

一、掌握各种类型的常量:

请在命令窗口中输入以下方框中的内容:(注释内容可以不用输入)

(说明:以上的数据是数值型常量(通常所说的常数),由数字,小数点,正负号构成。在内存中占8个字节,在表中占1~20个字节)

请在命令窗口中输入以下方框中的内容:(注释内容可以不用输入)

说明:以上数据是字符型常量,由字母、汉字、数字、空格、符号等组成,最多为254个字符,每个英文字符占1字节,汉字占2个字节。

注意:字符用英文半角的单引号或双引号或者[ ]括起来,定界符必须成对出现;

英文字母大小写有区别

请在命令窗口中输入以下方框中的内容:(注释内容可以不用输入)

说明:以上数据是逻辑型常量,只含两个值:.T. 或 .F. 。占一个字节,大小写等价。定界符是两个点。也可以使用.Y.或.N.表示。

请在命令窗口中输入以下方框中的内容:(注释内容可以不用输入)

说明:这是货币型常量,用 $ 开头,自动保留4位小数,如果小数位数超过四位,四舍五入到四位,货币型数据在内存中占8个字节。

说明:以上是日期型常量,日期时间型常量,vfp6.0及以上版本必须按照严格的格式书写:{^yyyy/mm/dd} 占8个字节,前4个字节存储年份,2个字节存储月,2个字节存储日

常用的分隔符有斜杠(/)、连字符(-)、句点(.)和空格,其中“/”是系统默认的分隔符{^yyyy/mm/dd hh:mm:ss a/p} 占8个字节,前4个字节存储日期,后4个存储时间

二、掌握各种类型的变量:

*说明:变量,可以是任何数据类型,由变量的值决定数据类型。并且在任何时候可以改变它的值。可以通过store命令或“=”为变量赋值

请在命令窗口中输入以下方框中的内容:(注释内容可以不用输入)

★★变量的命名规则

名称中只能包含字母、下划线“_”、数字符号和汉字符号;

名称的开头只能是字母、汉字或下划线,不能是数字开头;并且表的字段名不允许以下划线开头

除了自由表的字段名、表的索引标识名至多只能有10个字符外,其余可以是1~128个字符;

应避免使用系统保留字 以下名称不合法:

三、掌握特殊的内存变量——数组:

数组:由有序数据的集合,在VFP 中数组的每一个元素可以被赋值为不同类型的数据。 VFP 最多可声明二维数组,下标从1开始。数组被声明后,赋予默认值.F. 二维数组可以当成一维数组使用

对已经存在的数组,可以进行扩展,原数组元素中的数据会被保留继承

四、内存变量的保存和恢复

请在命令窗口中输入:(注释内容可以不用输入)

五、各种常用函数的名字、功能、返回值类型★★★★

(1)数值型函数:

①求绝对值函数ABS( )

语法:ABS(nExpression)说明:nExpression表示数值型表达式

功能:求括号内数值型数据nExpression的绝对值

返回值类型:N型

请在命令窗口中输入:(注释内容可以不用输入)

②取整函数INT()

语法:INT(nExpression)

功能:求括号内数值型数据nExpression的整数部分

返回值类型: N型

请在命令窗口中输入:(注释内容可以不用输入)

③符号函数SIGN()

语法:SIGN(nExpression)

功能:返回数值型表达式nExpression的符号,若为正返回1;若为负返回-1;为零,返回0 返回值类型: N型

④求最大值函数MAX( ), 与MAX相反,MIN()是求最小值函数

语法:MAX(Expression1,Expression2,……)

MIN(Expression1,Expression2,……)说明:括号内可以有多个参数

功能:求最大值 / 求最小值

请在命令窗口中输入:(注释内容可以不用输入)

说明:字符数据比较大小时,要考虑vfp系统的排序方式:

机器序列:空格<大写字母<小写字母<一级汉字<二级汉字,西文字符是按照ASCII码的值排列的,字母从小到大排列是A、B、C、D、……X、Y、Z、a、b、c、d、……x、y、z Pinyin拼音序列:汉字按拼音顺序排序,对于西文字符而言,空格在最前面,字母从小到大的排列是a、A、b、B、c、C、d、D、……x、X、y、Y、z、Z

STROKE笔画序列:汉字按照笔画顺序排序,西文字符的顺序同PinYin序列一样

⑤求模函数MOD

语法:MOD(nDividend,nDivisor)

功能:求以nDividend为被除数,nDivisor为除数的模, 最终模的符号和nDivisor除数相同。返回值类型: N型

之和;若两参数均为负,按照绝对值进行计算求余数,模为余数取反。

记住:保证结果与除数的符号相同,小数位数与被除数相同

⑥ROUND( )函数

语法:ROUND(nExpression,nDecimalPlaces)

说明:nExpression:指定要四舍五入的数值表达式

nDecimalPlaces:指定nExpression四舍五入的位置

功能:求第一个参数的四舍五入值,第二个参数指定四舍五入的位置。

⑦求平方根函数SQRT

语法:SQRT(nExpression)

功能:求nExpression的平方根

返回值类型: N型

请在命令窗口中输入:(注释内容可以不用输入)

⑧ RAND()函数

语法:RAND()

功能:返回0~1之间的一个随机数

返回值类型: N型

(2)字符型函数:★★

①ALLTRIM( )、LTRIM( )、RTRIM( )、TRIM( )函数

语法:ALLTRIM(字符表达式)

功能:

ALLTRIM( )函数删除指定字符表达式的前导和尾部空格符

LTRIM( )函数删除指定字符表达式的左侧前导空格

RTRIM( )和TRIM( )函数删除指定字符表达式的右侧尾部空格

返回值类型: C型

请在命令窗口中输入:(注释内容可以不用输入)

②空格生成函数SPACE( )

功能:返回由指定数目的空格构成的字符串

[语法格式]:SPACE(nSpaces) 说明:nSpaces:空格的数目

[返回值类型]:C型

LEN

语法:LEN() 说明:cExpression:字符表达式

功能:返回cExpression:字符表达式的长度(字节数),注意:一个英文占1个字节,一个

中文2字节(即,1个汉字长度为2)

返回值类型: N型

请在命令窗口中输入:(注释内容可以不用输入)

④取子串位置函数AT(),ATC()

[功能]:求第1个字符表达式在第2个字符表达式中出现的位置。

[语法格式]:

AT(<第1个字符表达式>,<第2个字符表达式>[,第n次出现])

[返回值类型]:N

现的位置。默认情况下,n=1,求第1次出现的起始位置。

AT()函数区分大小写,ATC()函数不区分大小写。

⑤求子串函数★★

取子串函数LEFT( )、RIGHT( )、SUBSTR( )

[功能]:

SUBSTR( )函数是从字符表达式中返回子串

LEFT( )函数是从字符表达式最左边字符开始返回指定数目的子串

RIGHT( )函数是从字符表达式最右边字符开始返回指定数目的子串

[语法格式]

LEFT(cExpression,nExpression)

RIGHT(cExpression,nExpression)

SUBSTR(cExpression,nStartPosition[,nCharactersReturned])

[参数含义]:

cExpression:指定要从其中返回子串的字符表达式

nExpression:指定截取的子串长度

nStartPosition:指定开始截取子串的起始位置

nCharactersReturned:指定截取的子串长度

[返回值类型]:C

说明:nStartPosition指定子串的起始位置,[,nCharactersReturned]指定子串的长度,如果缺省,表示从指定的起始位置到母串的末尾

⑥字符串匹配函数LIKE( )

[功能]:确定一个字符表达式是否与另一个字符表达式相匹配[语法格式]:LIKE(cExpression1,cExpression2)

[参数含义]:

cExpression1:指定要与cExpression2相比较的字符表达式cExpression2:字符表达式

注意:只能在第一个字符串中,使用通配符。

⑦大小写转换函数LOWER( )和UPPER( )

[功能]:

LOWER( )函数是将指定字符表达式中的大写字母转换成小写字母UPPER( )函数是将指定字符表达式中的小写字母转换成大写字母[语法格式]:

LOWER(cExpression)

UPPER(cExpression)

[参数含义]:

cExpression:字符表达式

(3)日期型、日期时间型函数:

①取系统日期函数DATE()

语法:DATE()

功能:返回计算机上的系统日期

返回值类型: D型

②取系统日期时间函数DATETIME()

语法:DATETIME()

功能:返回计算机上的系统日期时间

返回值类型:T型

③取系统时间函数TIME()

语法:TIME()

功能:返回计算机上的系统时间

返回值类型:C型,注意:字符型

请在命令窗口中输入:(注释内容可以不用输入)

④取一个日期的年份

语法:YEAR(〈expD〉)

说明:〈expD〉表示日期表达式

功能:返回〈expD〉的年份

返回值类型: N型

请在命令窗口中输入:(注释内容可以不用输入)

⑤取一个日期的月份MONTH

语法:MONTH(〈expD〉)

功能:返回〈expD〉的年份

返回值类型: N型

请在命令窗口中输入:(注释内容可以不用输入)

⑥取一个日期的天数

语法:DAY(〈expD〉)

功能:返回〈expD〉的天数

返回值类型: N型

⑦DOW( )函数

语法:DOW(〈expD〉/

功能:返回该日期是一周中的第几天,周日是第1天,周六是第7天返回值类型: N型

请在命令窗口中输入:(注释内容可以不用输入)

(4)各种类型转换函数:

①ASC()函数

语法:ASC(〈expC〉)

功能:返回字符串〈expC〉的最左边第一个字符的ASCII值。

返回值类型: N型

②CHR( )函数

语法:CHR(〈expN〉)

功能:求括号中ASCII码对应的字符,括号中的参数是数值型的整数

返回值类型: C型

③VAL()函数

语法:VAL(〈expC〉)

功能:返回由数字组成的字符串〈expC〉的数字值。

返回值类型: N型

请在命令窗口中输入:(注释内容可以不用输入)

符为止;如果第一个字符不是数字,也不是+、-号,返回0

★★★④STR()函数

功能:将数值表达式的值转换成字符串。

语法:STR (nExpression [, 参数1 [,参数2] ] )

说明:

nExpression:指定要转换的数值表达式

参数1 指定STR ()返回的字符串的总长度,包含小数点和小数的位数,默认值10;

参数2 指定小数位数,默认为0;

如果参数1 指定的总长度大于nExpression的长度,则使用在前面加空格的形式返回字符串;如果参数1 指定的总长度小于nExpression整数部分的长度,则返回“***”;

如果参数2小于nExpression的小数位数,则截去多余(四舍五入)的小数

返回值类型: C型

⑤DTOC()函数 / TTOC ( ) 函数

语法:DTOC ( [,1 ])

TTOC ( [,1或2 ] )

功能: DTOC ()将日期表达式转换成字符串

TTOC()将日期时间表达式转换成字符串

返回值类型: C型

说明:

表示日期型表达式 表示日期时间型表达式

参数1 —返回的字符串里没有时间分隔符,而且按照年月日顺序

参数2 —只返回时间部分的字符串

⑥ CTOD()函数 / CTOT ( ) 函数

语法:CTOD (

CTOT ( )

功能: CTOD ()将括号中的字符型表达式转换成对应的日期

CTOT ()将括号中的字符型表达式转换成对应的日期时间

默认格式 mm/dd/yy

(5)认识其他常用函数:

①BETWEEN()函数

语法:BETWEEN(eTestValue,eLowValue,eHighValue)

[参数含义]:

eTestValue:指定测试的表达式

eLowValue:指定范围的下界

eHighValue:指定范围的上界

功能:判断eTestValue表达式的值是否在[eLowValue,eHighValue]表达式的值之间。返回值: .T.、.F.、.NULL. 逻辑型L

②TYPE( )函数

语法:TYPE(’〈expC〉’)

功能:返回表达式的值的类型。表达式用单引号或者双引号括起来

返回值类型: C型

请在命令窗口中输入:(注释内容可以不用输入)

③条件测试函数IIF( )

[功能]:根据逻辑表达式的值,返回两个值中的某一个

[语法格式]:IIF(lExpression,eExpression1,eExpression2)

[参数含义]:

lExpression:逻辑表达式

eExpression1:表达式1, 若lExpression为.T.,返回eExpression1的值

eExpression2:表达式2, 若lExpression为.F.,返回eExpression2的值

iif(第一个表达式,第2个表达式,第3个表达式)

如果第一个表达式的值为 .T.,就返回第2个表达式的值

如果第一个表达式的值为 .f.,就返回第3个表达式的值

请在命令窗口中输入:(注释内容可以不用输入)

④MESSAGEBOX() 函数

[功能]:显示一个用户自定义对话框

[语法格式]:

MESSAGEBOX(cMessageText[,nDialogBoxType[,cTitleBarText]])

[参数含义]:

cMessageText:字符型参数,指定在对话框中显示的文本

nDialogBoxtype:整型参数,指定在对话框中的按钮和图标、显示对话框时的默认按钮cTileBarText:字符型参数,指定在对话框标题栏中的文本

格式解释:

MESSAGEBOX(‘提示内容的字符串’ ,按钮类型0~5 +图标类型号 + 默认按钮,‘对话框标题’)

请在命令窗口中输入:(注释内容可以不用输入)

注意:

MESSAGEBOX( )的返回值取决于用户所选择的按钮,MESSAGEBOX( )函数可以简写为MESSAGEB( ),不能写成MESS( )。

★★重点掌握的函数有:

ABS()、ALLTRIM()、ASC()、AT()、BETWEEN()、CHR()、DATE()、DAY()、DTOC()、EMPTY()、IIF()、 INT()、LEFT()、LEN()、MAX()、MIN()、MOD()、RIGHT()、STR()、 SUBSTR()、VAL()、YEAR()

六、掌握各种运算符与表达式

运算符——用于处理数据运算的符号。

表达式——通过运算符将数据(如常量、变量、函数等)组合起来的可以运算的式子。

1)数值运算符与数值表达式

+ 、 - 加减运算求模,乘除,乘方()

请在命令窗口中输入:(注释内容可以不用输入)

2)字符运算符+ — $ 和字符表达式(+,-的优先级高于$)

运算符“+”相当于字符相连

请在命令窗口中输入:(注释内容可以不用输入)

3)日期和日期时间运算符与日期、日期时间表达式(+,- 优先级同级)

“+”:日期1=日期2+整数天

时间1=时间2+整数秒

(注意:日期不能加日期,时间不能加时间)

“-”:整数天 =日期1-日期2

整数秒= 时间1-时间2

日期2=日期1-整数天时间2=时间1-整数秒

4)关系运算符与关系表达式

注意:

(一)关系运算符主要用于比较大小或是否相等。应该让同种数据类型的2个数据做比较。例如:

? 5<6 结果为 .T.

? {^2014/03/01} < {^2014/03/10} 结果为 .T.

? .T. > .F. 结果为 .T.

? “A” < “B”结果为 .T.

如果是将不同数据类型的数据直接做比较,一般情况下,会报错。

? {^2014/03/01} < 5 报错——操作类型不匹配

? {^2014/03/01} < "a"

? "a" < 5

? {^2014/03/01} > {^2014/02/10 10:00:00} 结果为 .T.

(二)当比较字符串时,字符串的大小要受到“排序序列”设置的影响。

在“工具”——“选项”——“数据”选项卡中,设置“排序序列”

机器序列(machine):空格<大写字母<小写字母<一级汉字<二级汉字,西文字符是按照ASCII码的值排列的,字母从小到大排列是A、B、C、D、……X、Y、Z、a、b、c、d、……x、y、z

Pinyin拼音序列:汉字按拼音顺序排序,对于西文字符而言,空格在最前面(小),英文字母从小到大的排列是空格

(三)使用=进行字符串比较时,结果受SET EXACT命令的影响。

ON——在短字符串后加入空格后使它和长字符串具有相同的长度,然后对每个字符进行比较。OFF——(默认)当左边字符串长度大于右边字符串的长度,则左边字符串取同右边长度相同的

长度相同且每个字符相同,两个字符串才相同,返回值.T.

5)逻辑运算符与逻辑表达式(优先级 not最高,其次是and , or最低)

逻辑“与”:AND 逻辑“或”:OR 逻辑“非”:NOT(或!)

6)宏替换

用内存变量替换名称,连字符&放在变量前,表示该变量值当作名称使用,并使用一个点.结束宏替换表达式。

混合各种运算符的表达式,计算时注意:

(a )等价于没有任何值;

(b )与0、空字符串(“”)或空格不同;

(c )排序优先于其他数据;

(d )在计算过程中或大多数函数中可以用到NULL

值。

(e )NULL 值会影响命令、函数、逻辑表达式和参数行为。VFP 支持的NULL 值可以出现在任

请在命令窗口中输入:(注释内容可以不用输入) 高于

高于

相关主题
文本预览
相关文档 最新文档