第 2章,VFP语言基础
1 数据类型
2
3
4
5
运算符和表达式数据存储函数命令关系表达式
2
运算符和表达式掌握关系表达式
‘abc’
‘53’
‘127’?
{^2006/01/01}? {^2007/01/01}
‘ad’
你知道它们之间有什么关系吗?
关系表达式
关系运算符,>,=,<,<=,>=,
==,!=(#,<>),$
关系表达式:由关系运算符组成的表达式,
用来比较两个数据或表达式之间的关系。
对于不同的数据类型,比较的意义不同。
例如:
两个数值比较:比较大小
两个日期比较:比较年月日
字符串比较:比较顺序或是否存在包含关系 ……
关系运算符,=,==
在非精确匹配模式 (set exact off,默认 )下,只要等于号 (=)
右边字符串是左边字符串的前缀,则结果为,T.;
在精确匹配模式 (set exact on)下,要对应字符完全相等,
结果才为,T.,此时等于号 (=)相当于 ==。 精确比较运算符
==的比较结果与设置无关,需要字符串完全相等 。
‘foxpro’=’fox’,’foxpro’== ’fox’,’foxpro’ =’Fox’
set exact on
‘foxpro’=’fox’,’foxpro’== ’fox’ 显示结果是,.T.,F.,F.
.F.,F.
关系运算符,$(包含 )
字符串包含运算符 $:左边的字符串是否包含在右边的字符串当中 。 如果是,结果为真,T.; 否则为假,F.。
‘ foxpro’$’fox’,’fox’$’foxpro’
’Fox’$’foxpro’
输出,.F.,T.,F.
要点:类型一致
关系运算符左右两边的数据类型必须保持一致。不同类型的数据之间不能进行比较。
今天天气鸡蛋
>
<
=
?
‘abc’>12 &&表达式错误,因为类型不匹配根据类型确定意义
(1)数值型数据?比较大小关系如,5+4>6 7! =3……
(2)日期型数据?依次比较年月日,按照数值大小比较如,date()<date()+1 {^2007/01/01}>{^2006/01/01}
由于日期比较的特殊性,出生日期越小,年龄越大
(3)字符型数据?比较字符在计算机内的排列顺序。
一级汉字按拼音顺序,字母、数字按 ascII码顺序排列。
如,’中国’ >’日本’ ’ a’<’b’ ‘9’>’1’……
设置不同的区别
大小写字母比较要注意:在 VFP中,存在一种设置,设置不同,大小写字母的排列顺序不同。
(1)拼音 (PINYIN)?’A’>’a’
(2)机内码 (MACHINE)?‘a’>’A’
(? Asc(‘a’)?97?asc(‘A’)?65)
Set collate to ‘machine’|’pinyin’
菜单方式,工具?选项?数据?排序序列字符串比较方法
在进行字符串的比较时,由于是比较排列顺序,系统会按字符串从左到右的顺序逐个比较,直至分出先后为止。
比如,’abc’<’ad’
很容易误解为长度比较,从而’ abc’>’ad’
又如,’127’<’53’
很容易误解为数值大小比较关系运算的结果
关系运算的结果将产生一个逻辑型常量:逻辑真值,T.(或逻辑假值,F.)。
比如,7+2<5?.F.
‘abc’$’abc123’?.T.
‘123’>’23’?.F.
date()<date()+1?.T.
127>’27’?错误的表达式关系运算小结
>,>=
<,<=
=,==
!=,#,<>
$
数值型 N 数值大小 是否相等日期型 D 日期大小 是否相等字符型 C 排列顺序
(从左到右 )
是否相等
(精确匹配 )
是否包含类型运算符
1 数据类型
2
3
4
5
运算符和表达式数据存储函数命令关系表达式
2
运算符和表达式掌握关系表达式
‘abc’
‘53’
‘127’?
{^2006/01/01}? {^2007/01/01}
‘ad’
你知道它们之间有什么关系吗?
关系表达式
关系运算符,>,=,<,<=,>=,
==,!=(#,<>),$
关系表达式:由关系运算符组成的表达式,
用来比较两个数据或表达式之间的关系。
对于不同的数据类型,比较的意义不同。
例如:
两个数值比较:比较大小
两个日期比较:比较年月日
字符串比较:比较顺序或是否存在包含关系 ……
关系运算符,=,==
在非精确匹配模式 (set exact off,默认 )下,只要等于号 (=)
右边字符串是左边字符串的前缀,则结果为,T.;
在精确匹配模式 (set exact on)下,要对应字符完全相等,
结果才为,T.,此时等于号 (=)相当于 ==。 精确比较运算符
==的比较结果与设置无关,需要字符串完全相等 。
‘foxpro’=’fox’,’foxpro’== ’fox’,’foxpro’ =’Fox’
set exact on
‘foxpro’=’fox’,’foxpro’== ’fox’ 显示结果是,.T.,F.,F.
.F.,F.
关系运算符,$(包含 )
字符串包含运算符 $:左边的字符串是否包含在右边的字符串当中 。 如果是,结果为真,T.; 否则为假,F.。
‘ foxpro’$’fox’,’fox’$’foxpro’
’Fox’$’foxpro’
输出,.F.,T.,F.
要点:类型一致
关系运算符左右两边的数据类型必须保持一致。不同类型的数据之间不能进行比较。
今天天气鸡蛋
>
<
=
?
‘abc’>12 &&表达式错误,因为类型不匹配根据类型确定意义
(1)数值型数据?比较大小关系如,5+4>6 7! =3……
(2)日期型数据?依次比较年月日,按照数值大小比较如,date()<date()+1 {^2007/01/01}>{^2006/01/01}
由于日期比较的特殊性,出生日期越小,年龄越大
(3)字符型数据?比较字符在计算机内的排列顺序。
一级汉字按拼音顺序,字母、数字按 ascII码顺序排列。
如,’中国’ >’日本’ ’ a’<’b’ ‘9’>’1’……
设置不同的区别
大小写字母比较要注意:在 VFP中,存在一种设置,设置不同,大小写字母的排列顺序不同。
(1)拼音 (PINYIN)?’A’>’a’
(2)机内码 (MACHINE)?‘a’>’A’
(? Asc(‘a’)?97?asc(‘A’)?65)
Set collate to ‘machine’|’pinyin’
菜单方式,工具?选项?数据?排序序列字符串比较方法
在进行字符串的比较时,由于是比较排列顺序,系统会按字符串从左到右的顺序逐个比较,直至分出先后为止。
比如,’abc’<’ad’
很容易误解为长度比较,从而’ abc’>’ad’
又如,’127’<’53’
很容易误解为数值大小比较关系运算的结果
关系运算的结果将产生一个逻辑型常量:逻辑真值,T.(或逻辑假值,F.)。
比如,7+2<5?.F.
‘abc’$’abc123’?.T.
‘123’>’23’?.F.
date()<date()+1?.T.
127>’27’?错误的表达式关系运算小结
>,>=
<,<=
=,==
!=,#,<>
$
数值型 N 数值大小 是否相等日期型 D 日期大小 是否相等字符型 C 排列顺序
(从左到右 )
是否相等
(精确匹配 )
是否包含类型运算符