关于VFP的字符串比较运算
- 格式:doc
- 大小:25.50 KB
- 文档页数:3
VF常用函数VF常用函数列表一、数值函数:1.绝对值和符号函数格式:ABS(<数值表达式>)SIGN(<数值表达式>)例如:ABS(-5)=5,ABS(4)=4,SIGN(8)=1,SIGN(-3)=-1,SIGN(0)=02.求平方根表达式格式:SQRT(<数值表达式>)例如:SQRT(16)=4,它与开二分之一次方等同。
3.圆周率函数格式:PI()4.求整数函数格式:INT(<数值表达式>)返回数值表达式的整数部分CEILING(<数值表达式>)返回大于或等于表达式的最小整数FLOOR(<数值表达式>)返回小于或等于表达式的最大整数例如:INT(5.8)=5.8,INT(-7.8)=-7,CEILING(6.4)=7,CEILING(-5.9)=-5FLOOR(9.9)=95.四舍五入函数格式:ROUND(<数值表达式1>,<数值表达式2>)功能:返回制定表达式在制定位置四舍五入的结果例如:ROUND(345.345,2)=345.35, ROUND(345.345,1)=345.3, ROUND(345.345,0)=345,ROUND(345.345,-1)=3506.求余函数格式:MOD(<数值表达式1>,<数值表达式2>)例如:MOD(10,3)=1 MOD(10,-3)=-2 MOD(-10,3)=2 MOD(-10,-3)=-1求余数的规律:1.首先按照两数的绝对值求余2.表达式1的绝对值大于表达式2的绝对值,则余数为表达式1的值3.余数取表达式1的正负号4.若两数异好号,余数在加上表达式2的值为最终的结果7. 求最大值和最小值函数MAX(数值表达式列表)MIN (数值表达式列表)例如:MAX(2,3,5)= 5 MAX(…2?,?12?,?05?)=2MAX(…汽车?,?飞机?,?轮船?)字符串比较的规律: 字符串比较首先比较第一个字母,如果有结果那就不用在进行比较了。
3.1 常量与变量考点1 常量常量用以表示一个具体的、不变的值。
不同类型常量的书写格式不同。
在Visual FoxPro 中,常量主要包括以下几种类型。
1数值型常量数值型常量即常数,用来表示一个数量的大小,由数字0~9小数点和正负号组成。
2货币型常量货币型常量用来表示货币值,其书写格式与数值型常量类似,但要加上一个前置的符号($)。
3字符型常量字符型常量也称为字符串,其表示方法是用半角单引号、双引号或方括号把字符串括起来。
这里的单引号、双引号或方括号称为定界符许多常量都有定界符。
定界符虽然不作为常量本身的内容,但它规定了常量的类型及常量的起始和终止界限。
4日期型常量日期型常量的定界符是一对花括号。
花括号内包括年、月、日3部分内容,各部分内容之间用分隔符分隔。
5日期时间型常量日期时间型常量包括日期和时间两部分内容:{<日期>,<时间>}。
<日期>部分与日期型常量相似,也有传统的和严格的两种格式。
6逻辑型常量逻辑型数据只有逻辑真和逻辑假两个值。
前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。
逻辑型数据只占用1字节。
考点2 变量Visual FoxPro中变量分为字段变量和内存变量二其中字段变量就是表中的字段。
内存变量是内存中的一块存储区域,变量值就是存放在这个存储区域里的数据,变量的类型取决于变量值的类型。
内存变量的数据类型包括:字符型(C)、数值型(N)、货币型(Y)、日期型(D)、日期时间型(T)和逻辑型(L)。
1简单的内存变量每一个变量都有一个名字,可以通过变量名访问变量。
如果当前表中存在一个同名的字段变量,则在访问内存变量时,必须在变量名前加上前缀M.(或M->),否则系统将访问同名的字段变量。
2数组与简单内存变量不同,数组在使用之前一般要用DIMENSION或DECLARE命令显示创建,规定数组是一维数组还是二维数组,数组名和数组大小。
VFP常用命令在下一行显示表达式串在当前行显示表达式串@... 将数据按用户设定的格式显示在屏幕上或在打印机上打印ACCEPT 把一个字符串赋给内存变量APPEND 给数据库文件追加记录APPEND FROM 从其它库文件将记录添加到数据库文件中AVERAGE 计算数值表达式的算术平均值BROWSE 全屏幕显示和编辑数据库记录CALL 运行内存中的二进制文件CANCEL 终止程序执行,返回圆点提示符CASE 在多重选择语句中,指定一个条件CHANGE 对数据库中的指定字段和记录进行编辑CLEAR 清洁屏幕,将光标移动到屏幕左上角CLEAR ALL 关闭所有打开的文件,释放所有内存变量,选择1号工作区CLEAR FIELDS 清除用SET FIELDS TO命令建立的字段名表CLEAR GETS 从全屏幕READ中释放任何当前GET语句的变量CLEAR MEMORY 清除当前所有内存变量CLEAR PROGRAM 清除程序缓冲区CLEAR TYPEAHEAD 清除键盘缓冲区CLOSE 关闭指定类型文件CONTINUE 把记录指针指到下一个满足LOCATE命令给定条件的记录,在LOCATE 命令后出现。
无LOCATE则出错COPY TO 将使用的数据库文件复制另一个库文件或文本文件COPY FILE 复制任何类型的文件COPY STRUCTURE EXTENED TO 当前库文件的结构作为记录,建立一个新的库文件COPY STRUCTURE TO 将正在使用的库文件的结构复制到目的库文件中COUNT 计算给定范围内指定记录的个数CREATE 定义一个新数据库文件结构并将其登记到目录中CREATE FROM 根据库结构文件建立一个新的库文件CREATE LABEL 建立并编辑一个标签格式文件CREATE REPORT 建立宾编辑一个报表格式文件DELETE 给指定的记录加上删除标记DELETE FILE 删除一个未打开的文件DIMENSION 定义内存变量数组DIR 或DIRECTORY 列出指定磁盘上的文件目录DISPLAY 显示一个打开的库文件的记录和字段DISPLAY FILES 查阅磁盘上的文件DISPLAY HISTORY 查阅执行过的命令DISPLAY MEMORY 分页显示当前的内存变量DISPLAY STATUS 显示系统状态和系统参数DISPLAY STRUCTURE 显示当前书库文件的结构DO 执行FoxBase程序DO CASE 程序中多重判断开始的标志DO WHILE 程序中一个循环开始的标志EDIT 编辑数据库字段的内容EJECT 使打印机换页的命令,将PROW()函数和PCOL()函数值置为0ELSE 在IF...ENDIF结构中提供另一个条件选择路线ENDCASE 终止多重判断ENDDO 程序中一个循环体结束的标志ENDIF 判断体IF...ENDIF结构结束标志ERASE 从目录中删除指定文件EXIT 在循环体内执行退出循环的命令FIND 将记录指针移动到第一个含有与给定字符串一致的索引关键字的记录上FLUSH 清除所有的磁盘存取缓冲区GATHER FROM 将数组元素的值赋予数据库的当前记录中GO/GOTO 将记录指针移动到指定的记录号HELP 激活帮助菜单,解释FoxBASE+的命令IF 在IF...ENDIF结构中指定判断条件INDEX 根据指定的关键词生成索引文件INPUT 接受键盘键入的一个表达式并赋予指定的内存变量INSERT 在指定的位置插入一个记录JOIN 从两个数据库文件中把指定的记录和字段组合成另一个库文件KEYBOARD 将字符串填入键盘缓冲区LABEL FROM 用指定的标签格式文件打印标签LIST 列出数据库文件的记录和字段LIST FILES 列出磁盘当前目录下的文件LIST HISTORY 列出执行过的命令LIST MEMORY 列出当前内存变量及其值LIST STATUS 列出当前系统状态和系统参数LIST STRUCTURE 列出当前使用的数据库的库结构LOAD 将汇编语言程序从磁盘上调入内存LOCATE 将记录指针移动到对给定条件为真的记录上LOOP 跳过循环体内LOOP与ENDDO之间的所有语句,返回到循环体首行MENU TO 激活一组@...PROMPT命令定义的菜单MODIFY COMMAND 进入FoxBASE+系统的字处理状态,并编辑一个ASCII码文本文件(如果指定文件名以.PRG为后缀,则编辑一个FoxBASE+命令文件)MODIFY FILE 编辑一个一般的ASCII码文本文件MODIFY LABEL 建立并编辑一个标签(.LBL)文件MODIFY REPORT 建立并编辑一个报表格式文件(.FRM)文件MODIFY STRUCTURE 修改当前使用的库文件结构NOTE/* 在命令文件(程序)中插入以行注释(本行不被执行)ON 根据指定条件转移程序执行OTHERWISE 在多重判断(DO CASE)中指定除给定条件外的其它情况PACK 彻底删除加有删除标记的记录PARAMETERS 指定子过程接受主过程传递来的参数所存放的内存变量PRIVATE 定义内存变量的属性为局部性质PROCEDURE 一个子过程开始的标志PUBLIC 定义内存变量为全局性质QUIT 关闭所有文件并退出FoxBASE+READ 激活GET语句,并正是接受在GET语句中输入的数据RECALL 恢复用DELETE加上删除标记的记录REINDEX 重新建立正在使用的原有索引文件RELEASE 清楚当前内存变量和汇编语言子程序RENAME 修改文件名REPLACE 用指定的数据替换数据库字段中原有的内容REPORT FORM 显示数据报表RESTORE FROM 从内存变量文件(.MEM)中恢复内存变量RESTORE SCREEN 装载原来存储过的屏幕映象RESUME 使暂停的程序从暂停的断点继续执行RETRY 从当前执行的子程序返回调用程序,并从原调用行重新执行RETURN 结束子程序,返回调用程序RUN/!在FoxBASE+中执行一个操作系统程序SAVE TO 把当前内存变量及其值存入指定的磁盘文件(.MEM)SAVE SCREEN 将当前屏幕显示内容存储在指定的内存变量中SCATTER 将当前数据库文件中的数据移到指定的数组中SEEK 将记录指针移到第一个含有与指定表达式相符的索引关键字的记录SELECT 选择一个工作区SET 设置FoxBASE+控制参数SET ALTERNATE ON/OFF 设置传送/不传送输出到一个文件中SET ALTERNATE TO 建立一个存放输出的文件SET BELL ON/OFF 设置输入数据时响铃/不响铃SET CARRY ON/OFF 设置最后一个记录复制/不复制到添加的记录中SET CENTURY ON/OFF 设置日期型变量要/不要世纪前缀SET CLEAR ON/OFF 设置屏幕信息能/不能被清除SET COLOR ON/OFF 设置彩色/单色显示SET COLOR TO 设置屏幕显示色彩SET CONFIRM ON/OFF 设置在全屏幕编辑方式中,要求/不要求自动跳到下一个字段SET CONSOLE ON/OFF 设置将输出传送/不传送到屏幕SET DATE 设置日期表达式的格式SET DEBUG ON/OFF 设置传送/不传送ECHO的输出到打印机上SET DECIMALS TO 设置计算结果需要显示的小数位数SET DEFAULT TO 设置默认的驱动器SET DELETED ON/OFF 设置隐藏/显示有删除标记的记录SET DELIMITER TO 为全屏幕显示字段和变量设置定界符SET DELIMITER ON/OFF 选择可选的定界符SET DEVICE TO SCREEN/PRINT 将@...SAY命令的结果传送到屏幕/打印机SET DOHISTORY ON/OFF 设置存/不存命令文件中的命令到历史记录中SET ECHO ON/OFF 命令行回送到屏幕或打印机SET ESCAPE ON/OFF 允许ESCAPE退出/继续命令文件的执行SET EXACT ON/OFF 在字符串的比较中,要求/不要求准确一致SET EXACLUSIVE ON/OFF 设置数据库文件的共享SET FIELDS ON/OFF 设置当前打开的数据库中部分/全部字段为可用SET FIELDS TO 指定打开的数据库中可被访问的字段SET FILTER TO 在操作中将数据库中所有不满足给定条件的记录排除SET FIXED ON/OFF 固定/不固定显示的小数位数SET FORMAT TO 打开指定的格式文件SET FUNCTION 设置F1-F9功能键值SET HEADING ON/OFF 设置LIST或DISPLAY时,显示/不显示字段名SET HELP ON/OFF 确定在出现错误时,是否给用户提示SET HISTORY ON/OFF 决定是/否把命令存储起来以便重新调用SET HISTORY TO 决定显示历史命令的数目SET INDEX TO 打开指定的索引文件SET INTENSITY ON/OFF 对全屏幕操作实行/不实行反转显示SET MARGIN TO 设置打印机左页边SET MEMOWIDTH TO 定义备注型字段输出宽度和REPORT命令隐含宽度SET MENU ON/OFF 确定在全屏幕操作中是否显示菜单SET MESSAGE TO 定义菜单中屏幕底行显示的字符串SET ODOMETER TO 改变TALK命令响应间隔时间SET ORDER TO 指定索引文件列表中的索引文件SET PATH TO 为文件检索指定路径SET PRINT ON/OFF 传送/不传送输出数据到打印机SET PRINTER TO 把打印的数据输送到另一种设备或一个文件中SET PROCEDURE TO 打开指定的过程文件SET RELATION TO 根据一个关键字表达式连接两个数据库文件SET SAFETY ON/OFF 设置保护,在重写文件时提示用户确认SET SCOREBORAD ON/OFF 设置是/否在屏幕的第0行上显示FoxBASE+的状态信息SET STATUS ON/OFF 控制是/否显示状态行SET STEP ON/OFF 每当执行完一条命令后,暂停/不暂停程序的执行SET TALK ON/OFF 是否将命令执行的结果传送到屏幕上SET TYPEAHEAD TO 设置键盘缓冲区的大小SET UNIQUE ON/OFF 在索引文件中出现相同关键字的第一个/所有记录SKIP 以当前记录指针为准,前后移动指针SORT TO 根据数据库文件的一个字段或多个字段产生一个排序的哭文件STORE 赋值语句SUM 计算并显示数据库记录的一个表达式在某范围内的和SUSPEND 暂停(挂起)程序的执行TEXT...ENDTEXT 在屏幕上当前光标位置显示...的文本数据块TOTAL TO 对预先已排序的文件产生一个具有总计的摘要文件TYPE 显示ASCII码文件的内容UNLOCK 解除当前库文件对记录和文件的加锁操作UPDATE 允许对一个数据库进行成批修改USE 带文件名的USE命令打开这个数据库文件。
单元3 运算规则1.假如张三是1984年2月6日出生,计算他到2008年8月7日出生了多少天,折合多少年。
【操作】在命令窗口输入命令:? {^ 2008-8-7 }-{^ 1984-2-6 }? ({^ 2008-8-7 }-{^ 1984-2-6 })/3652.请计算当前日期前100天,后100天各是哪一天。
【操作】在命令窗口输入命令:? Date()-100? date()+1003.请上机验本节SET EXACT 对字符串比较的影响表。
【操作】在命令窗口输入命令:set exact off? " abc"="abc"," abc"="ab"," ab"="abc"," ab "="ab"," ab"=""set exact on? " abc"="abc"," abc"="ab"," ab"="abc"," ab "="ab"," ab"=""【结论】在set exact off时,字符串是非精确比较,当右边字符串是左边字符串的开始部分时,结果为真,在set exact on时,只有两个字符串完全相同时结果才为真。
4.现在有四个字符串“China”、“中国”、“Chinese”、“中华人民共和国”,请在“Machine”、“PinYin”、“Stroke”三种排序方式下给它们排列顺序,并通过上机验证。
【操作】在命令窗口输入命令:set collate to "machine"?"China"<"Chinese" ,"Chinese"<"中国","中国"<"中华人民共和国"set collate to "Pinyin"?"China"<"Chinese" ,"Chinese"<"中国","中国"<"中华人民共和国"set collate to "stroke"?"China"<"Chinese" ,"Chinese"<"中国","中国"<"中华人民共和国"?"China"<"Chinese" ,"Chinese"<"中华人民共和国","中华人民共和国"<"中国"显示结果:5.在Visual FoxPro6.0状态下计算下列表达式的结果。
关于VFP的字符串比较运算
王彩霞
【期刊名称】《科教文汇》
【年(卷),期】2007(000)004
【摘要】通过Visual FoxPro6.0的关系表达式可以进行各种类型的数据的比较运算.其中字符串的比较运算较为复杂.本文针对字符串比较过程中经常出现的疑义,进行探讨,指出排除疑义的关键所在,对正确理解字符串的关系运算有重大的指导意义.【总页数】1页(P191-191)
【作者】王彩霞
【作者单位】运城学院公共计算机教学部,山西·运城,044000
【正文语种】中文
【中图分类】TP3
【相关文献】
1.用VFP实现人工神经网络的训练和运算研究 [J], 李卫东
2.关于VFP字符型数据的比较运算 [J], 郝莉娟;郑日湖
3.关于VFP的字符串比较运算 [J], 王彩霞
4.中职计算机专业基于VFP编程运算错误学习计算机数据 [J], 张纯;徐晓海
5.VFP的字符串比较与EXACT ON/OFF设置的关系 [J], 蒋景行
因版权原因,仅展示原文概要,查看原文内容请购买。
关于VFP的字符串比较运算(一)对字符串来说,其比较规则如下:比较两个字符串时,系统对两个字符串的字符自左向右逐个进行比较,一旦发现两个对应字符不同,就根据它们的排序序列决定字符串的大小。
对字符序列的排序设置选项有三种:Machine(机器)、Pinyin(拼音)、Stroke(笔画)。
a)Machine(机内码)次序:字符按ASCII码值比较(小写字母>大写字母>空格),汉字按拼音顺序比较。
例:“abc”> “abcd”、“b”> “B”、“c”< “c”、“张”> “李”b)Pinyin(拼音)次序:汉字按拼音顺序比较,字符按大写字符>小写字符>空格进行比较。
例:“a”< “A”c)Stroke(笔画)次序:按笔画的多少排序。
例:“李”<“王”、“a”<“t”两个字符串比较时,若长度相等,比较时规则相对容易,不论是进行=(单等号)还是= =(双等号)运算,即比较时从左到右逐个字符进行,如对应的字符有不相等的,则其比较结果为不相等(.F.),如一直到结尾对应的字符都相等则其比较结果为相等(.T.)。
如果两个字符串的长度不同,则SET EXACT ON 和SET EXACT OFF这两条命令将会直接影响表1中列出的=(等于)和!=(不等于)的运算规则。
字符串比较过程中经常产生的疑义将由此而来。
例2:在命令窗口输入如下语句。
SET EXACT OFF &&字符串进行非精确比较?"王老师">"王", "王老师"<"王" &&运算结果为.F. .F.2.1长度不相等的字符串比较2.1.1执行SET EXACT OFF 命令时的比较当EXACT的设置值为OFF(默认值)时,只要运算符右边字符串的所有字符和运算符左边字符串的左端部分内容相匹配,则认为两个字符串相等。
不属于vfp逻辑运算不属于VFP逻辑运算的主要有以下几种情况:1. 字符串拼接VFP中的字符串拼接使用加号"+",而不是逻辑运算符。
例如,我们可以通过以下代码将两个字符串拼接起来:```lcString1 = "Hello"lcString2 = "World"lcString1 + lcString2 && 输出结果为"HelloWorld"```2. 字符串比较VFP中的字符串比较使用等号"="或不等号"!=",而不是逻辑运算符。
例如,我们可以通过以下代码比较两个字符串是否相等:```lcString1 = "Hello"lcString2 = "World"lcString1 = lcString2 && 输出结果为.F.,表示不相等```3. 数值比较VFP中的数值比较同样使用等号"="或不等号"!=",而不是逻辑运算符。
例如,我们可以通过以下代码比较两个数值是否相等:```lnNum1 = 10lnNum2 = 20lnNum1 = lnNum2 && 输出结果为.F.,表示不相等```4. 位运算VFP中的位运算主要包括按位与(&)、按位或(|)和按位异或(^)等运算符。
这些运算符用于操作二进制位,而不是逻辑运算。
例如,我们可以通过以下代码进行位运算:```lnNum1 = 10 && 二进制表示为 00001010lnNum2 = 5 && 二进制表示为 00000101lnNum1 & lnNum2 && 输出结果为 0,表示按位与运算的结果```5. 三元运算符VFP中没有三元运算符(例如C语言中的条件运算符),不能像其他编程语言那样使用类似于"condition ? expression1 : expression2"的表达式。
Visual FoxPro的运算符与表达式运算是对数据进行加工的过程,描述各种不同运算的符号称为运算符,而参与运算的数据称为操作数。
表达式用来表示某个求值规则,它由运算符和配对的圆括号将常量、变量、函数、对象等操作数以合理的形式组合而成。
表达式可用来执行运算、操作字符或测试数据,每个表达式都产生唯一的值。
表达式的类型由运算符的类型决定。
在Visual FoxPro 6.0中有5类运算符和表达式:•算术运算符和算术表达式•字符串运算符和字符串表达式•日期运算符和日期表达式•关系运算符和关系表达式•逻辑运算符和逻辑表达式1.算术运算符与算术表达式算术表达式也称数值型表达式,由算术运算符、数值型常量、变量、函数和圆括号组成,其运算结果为一数值。
例如:50*2+(70—6)/8的运算结果为108.00。
算术表达式的格式为:<数值1><算术运算符1><数值2>[<算术运算符2><数值3>…](1)算术运算符Visual FoxPro 6.0提供的算术运算符见下表。
在这6个算术运算符中,除取负“-”是单目运算符外,其他均为双目运算符。
它们运算的含义与数学中基本相同。
运算符名称说明+ 加同数学中的加法- 减同数学中的减法* 乘同数学中的乘法/ 除同数学中的除法^或**乘方同数学中的乘方,如4^3表示43%求余12%5表示12除以5所得的余数2•( ) →^、** →*、/ → %→ +、- (2)表达式的书写规则算术表达式与数学中的表达式写法有所区别,在书写表达式时应当特别注意:•每个符号占1格,所有符号都必须一个一个并排写在同一横线上,不能在右上角或右下角写方次或下标。
例如:23要写成2^3,Xl十X2要写成X1+X2。
•原来在数学表达式中省略的内容必须重新写上。
例如:2X要写成2*X。
•所有括号都用小括号(),且括号必须配对。
例如:3[x+2(y+z)]必须写成3*(x+2*(y+z))。
关于VFP的字符串比较运算(一)对字符串来说,其比较规则如下:比较两个字符串时,系统对两个字符串的字符自左向右逐个进行比较,一旦发现两个对应字符不同,就根据它们的排序序列决定字符串的大小。
对字符序列的排序设置选项有三种:Machine(机器)、Pinyin(拼音)、Stroke(笔画)。
a)Machine(机内码)次序:字符按ASCII码值比较(小写字母>大写字母>空格),汉字按拼音顺序比较。
例:“abc”> “abcd”、“b”> “B”、“c”< “c”、“张”> “李”
b)Pinyin(拼音)次序:汉字按拼音顺序比较,字符按大写字符>小写字符>空格进行比较。
例:“a”< “A”
c)Stroke(笔画)次序:按笔画的多少排序。
例:“李”<“王”、“a”<“t”
两个字符串比较时,若长度相等,比较时规则相对容易,不论是进行=(单等号)还是= =(双等号)运算,即比较时从左到右逐个字符进行,如对应的字符有不相等的,则其比较结果为不相等(.F.),如一直到结尾对应的字符都相等则其比较结果为相等(.T.)。
如果两个字符串的长度不同,则SET EXACT ON 和SET EXACT OFF这两条命令将会直接影响表1中列出的=(等于)和!=(不等于)的运算规则。
字符串比较过程中经常产生的疑义将由此而来。
例2:在命令窗口输入如下语句。
SET EXACT OFF &&字符串进行非精确比较
?"王老师">"王", "王老师"<"王" &&运算结果为.F. .F.
2.1长度不相等的字符串比较
2.1.1执行SET EXACT OFF 命令时的比较
当EXACT的设置值为OFF(默认值)时,只要运算符右边字符串的所有字符和运算符左边字符串的左端部分内容相匹配,则认为两个字符串相等。
2.1.2执行SET EXACT ON 命令时的比较
当EXACT的设置值为ON时,在较短的一个字符串的右边加上足够的空格,以两个字符串的长度相等,并且每个相应的字符都相等,则认为两个字符串相等。
以上给出了在不同系统环境下的比较两个字符串是否相等的规则。
如果两个字符串不相等,则两个字符串一定具有大于或小于的关系。
如何确定两个字符串的大于或小于关系?用运算符<(小于)或>(大于)进行两字符串比较时,比较到第1个不相同字符为止,否则,长度较长的字符串较" 大"。
可见,在以上的两个不同系统环境下,长度不相等的两个字符串的比较规则不同。
关于VFP的字符串比较运算(二)若两个字符串相等,则它们的=(等于)、>=(大于等于)、<=(小于等于)运算结果为.T.,而>(大于)、<(小于)、!=(不等于)运算结果为.F.。
若两个字符串不相等,运算符左边的字符串小于运算符右边的字符串,则!=(不等于)、<(小于)、<=(小于等于)运算结果为.T.;而=(等于)、>(大于)、>=(大于等于)运算结果为.F.。
若两个字符串不相等,且运算符左边的字符大于运算符右边的字符串,则!=(不等于)、>(大于)、>=(大于等于)<运算结果为.T.,而=(等于)、<(小于)、<=(小于等于)运算结果为.F.
例3:在命令窗口输入如下语句:
SET EXACT OFF &&字符串进行非精确比较
?"王老师"="王", "王老师">="王", "王老师"<="王" &&运算结果为.T. .T. .T.
?"王老师">"王", "王老师"<"王", "王老师"!="王" &&运算结果为.F. .F. .F.
这是两个字符串进行非精确比较。
"王老师"和"王"比较时,运算符右边的字符串"王"与运算符左边的字符串"王老师"前面的第1、2字符相等,则"王老师"和"王"相等。
以上各运算的显示结果也不难理解。
在命令窗口输入如下语句:
SET EXACT ON &&字符串进行精确比较
?"王老师"="王", "王老师"<"王", "王老师"<="王" &&运算结果为.F. .F. .F.
?"王老师">"王", "王老师">="王", "王老师"!="王" &&运算结果为.T. .T. .T.
这是两个字符串进行精确比较。
这样两个字符串有特点:两个字符串长度不相等,右边的字符串与左边的字符串前面部分内容相同。
"王老师"和"王"比较时,在"王"的尾部加上4个空格,使要比较的两个字符串长度相等。
再比较"王老师"和"王",显然两个字符串不相等,且"王老师">"王"。
以上的各运算的结果不难理解。