关于VFP的字符串比较运算

合集下载

VFP的基本数据运算(二)

VFP的基本数据运算(二)

注意: 1.数据类型匹配问题 在一个表达式中,每个运算符两边的数据类 型必须一致。 2.在表达式中若出现了关系运算符或逻辑运 算符,则该表达式的值不是.t.就是.f.。
举例: 1. 3>4 or 15<>3*5 2. 3*4<5+6 or “Fox”$”Fox”+”Pro” 3. ”Am”$”I am a student ” and “ABCD”>”ABBC” 4. 3*(21-4)>9+15/5 and “abcd”=“abc”
如: “I am a student”=“I am” 表达式值为.t. “I am a student”=“am a” 表达式值为.f. 4.”==”运算符用于更精确的比较,如果用它比较两 个字符串是否相等时,则只有两个字符串完全相 同时,结果才为真。 如: “Visual FoxPro”==“Visual FoxPro” 表达式值为.t. “Visual FoxPro”==“visual foxpro” 表达式值为.f.
表达式 .t.or.t. 值 .t.
.t.or.f. .f.or.t. .f.or.f.
.t. .t. .f.
(4)有小括号的先做小括号内运算,再not 运算,再and运算,最后or运算
三。综合表达式
在实际描述表达式时,表达式中可能含有多 种不同类型的运算符,那么在计算该表达 式值时,必须严格遵循表达式运算的先后 次序 1有小括号括起来的先做小括号内数据的运算 2.再算术运算 3.再字符运算 4.再关系运算 5.最后逻辑运算
注意:常见字符的大小关系
“0”<“1”<….<“9”<“a”<“b”<…….<“z”<“A”<“B”<……<“Z”

VF程序设计之Visual FoxPro的数据及其运算

VF程序设计之Visual FoxPro的数据及其运算

5.备注型(Memo)
用字母 M 表示,用来存放较多字符的数据类
型。只用于表中字段类型的定义。字段长度固定为 4个字节。实际数据存放在与表文件同名的备注文 件(.ftp)中,其长度依实际需要而定。
6.通用型(General)
用字母 G 表示,是用来存储OLE对象的数据类
型。可以是电子表格、文挡、图形、声音等,跟备 注型数据一样,它只用于表中字段类型的定义,通 用型数据字段长度固定为4位。
日期型数据的长度固定为8位。
日期时间型(Date Time)
用字母 T 表示,是用来表示日期和时间,
默认格式为: {^yyyy/mm/dd hh:mm:ss} 其中mm,dd,yy的意义与日期型相同,hh,
mm,ss分别表示时、分、秒。长度也固定为8 位。
与日期数据有关的几个设置命令:
1、SET MARK TO 【日期分隔符】 设置日期数据分隔符样式
用户正是利用不操作、处 理各种类型的数据,实现数据处理的应用。
一、Visual FoxPro的数据类型
1.字符型(Character) 用字母 C 表示,字符型数据包括中文字符、
英文字符、数字字符和其他ASCII字符,其长 度最长不超过254个字符。
● 避免使用 VFoxPro 的保留字;
2.内存变量
内存变量是在内存中定义的一种单个数 据元素的临时性变量。
(1)内存变量的数据类型 内存变量的常见数据类型包括:数值型、 字符型、逻辑型、日期型;
(2)内存变量的建立(赋值)
建立内存变量就是给内存变量赋值。 内存变量赋值 既可定义一个新的内存变量, 也可改变已有内存变量的值或数据类型。
命令格式一:
STORE <表达式> TO <内存变量表> 命令功能:计算<表达式>的值并赋值

VFP-运算规则解析

VFP-运算规则解析

3-2 函数
3、日期和时间函数 求系统日期:date( ) 求系统时间:time( ) 求系统日期时间:datetime( ) 求年:year(日期型数据) 求月:month(日期型数据) 求日:day(日期型数据) 求时:hour(日期时间型数据) 求分:minute(日期时间型数据) 求秒:stc(日期时间型数据)
A=“金融职业技术学校“
取计右算边子子串串出:现次rig数h:t(o串c,cu长rs度(串) 1,B?串=b2le)ft(a,4)+right(a,4)
求子串位置:at(串1,串2)
子串替换:strff(串1,超始位置,长度,串2)
字符替换:chrtran(串1,串2,串3)
字符串匹配:like(串1,串2)
12+24/(6/2+2^3)*2/4-6*6%5^2
3-1运算符与表达式
2、字符运算符
运算符 完全连接 +
不完全连接 –
说明
前后两个字符串首尾连接形成一 个新的字符串
连接前后两个字符串,并将前字 符串的尾部空格移到合并后的 新字符串尾数
例:求下列表达式的值 “Bei “+ “Jing” “Bei “+”Jing”
的年龄、求出香港回归那天是星期几。
二、实地训练
|-4.32| Abs(-4.32)
Ln10
Log(10 )
e3
Exp(3)
求, 56.7)
对于24.5674进行四舍五入保留三位小数 round(24.5674, 3)
取“职业技术学院计算机系”的左边一字
四、归纳总结
1、VFP有五类运算符和五类函数:
数值运算符
五种函数
五种运算符

VF常用函数

VF常用函数

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(…汽车?,?飞机?,?轮船?)字符串比较的规律: 字符串比较首先比较第一个字母,如果有结果那就不用在进行比较了。

计算机二级VFP数据与数据运算

计算机二级VFP数据与数据运算

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常用命令

VFP常用命令

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命令打开这个数据库文件。

VFP-运算规则

VFP-运算规则

二、实地训练
课堂练习 将下列数学表达式写成计算机表达式
b b 2 4ac 2a
X<y .and. Y<z
ln(x y ) 2 2 2 (a b )
3 3
X>100 .or. X<0
x<y<z x>100或x<0 (-b+sqrt(b*b-4*a*c))/(2*a) Log(x^3+pi()*y^3)/(a*a+b*b)^2
3-1运算符与表达式
2、字符运算符
运算符 完全连接 + 不完全连接 –
例:求下列表达式的值 “Bei “+ “Jing” “Bei “+”Jing”
说 明 前后两个字符串首尾连接形成一 个新的字符串 连接前后两个字符串,并将前字 符串的尾部空格移到合并后的 新字符串尾数
结果:“Bei Jing” 结果:“Bei Jing “
3-2 函数
2、字符函数 例:函数的运用 求字符串长度:len(串) 产生空格:space(n) 由“金融职业技术学 校”中得到 “金融 删除前导空格:ltrim(串) 学校”. 删除后导空格:trime(串) 删除前后空格:alltrime(串) A=“金融职业技术学校“ 取左边子串:left(串,长度) B=left(a,4)+right(a,4) 取右边子串:right(串,长度) ?b 计算子串出现次数:occurs(串1,串2) 求子串位置:at(串1,串2) 子串替换:strff(串1,超始位置,长度,串2) 字符替换:chrtran(串1,串2,串3) 字符串匹配:like(串1,串2)
计算56年10月3日出生的人到现在的年龄
Int((Date()-{^1956-10-3})/365)

VF 运算规则解析

VF  运算规则解析

单元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中字符串的比较

VFP中字符串的比较
本文仅就字符串的比较( 关系) 运算进行了讨论。
字符串的比较分两类 : 相等比较与大小比较 。
1 字符 串的相等 比较
相等 比较的运算符有 3种 : 等于 =, 精确等于 t =, - 不等于 <> 或# ( ,! =) 。
在进行相等 比较时, 对于两个字符串中的字符从左到右逐个进行 比较 , 一旦 出现不同的字符 时, 就 确定两者不相等 ; 若逐个比较下来都相同 , 则确认此两字符 串相等。 对于相等( 不等) 运算符 , 首先考虑两个参加相等 比较 的字符串的长度。若两个 比较字符 串长度相
摘要 : 对字符 串的相等和 大小比较作 了分析, 特别对于 3种排序 次序 ( 机器、 拼音、 画) 笔 对排 序的影响进行详 细的阐述 。 关键词 : 相等比较; 大小比较 ; 次序 中图分类号 :P 0 T 3 文献标识码 : A 文章编号 :6 1 03 (0 6 0 — 04一 4 17 — 4 6 20 )1 06 o
在 Vsa F x r 的关 系 运算 ( i l oPo中 u 又称 比较 运算 ) 是双 目运 算 , 结 果是 逻辑 值 真 ( T ) 假 其 .. 或
(F ) . 。它在选择关系运算 中作 为条件给出, 例如在普通 V P命令 ( F 包括 S L命令 ) 数据表的索引排 Q 、 序以及程序结构的条件判断中都要用到关系运算 。 在关系运算中有两点必须注意 : 一是两个参加运算 的数据必须类型相同 ; 二是空值 (N L . 不参 .U L ) 加关 系运算 , 空值与任何数据的关系运算结果都是空值而不是逻辑值 。
?A B , B B == A == A A 说明。 & &显 示 . . . . T F
说 明: S L命令中 , 在 Q 两个字符 串在相等 比较中还受到 S T A S N O F环境设置影响 , E N I / F O 请见后

关于VFP字符型数据的比较运算

关于VFP字符型数据的比较运算
维普资讯
第 1 5期 总 第 1 9期 6 20 0 8年 8月
内 蒙 古 科 技 与 经 济
I n rM o g l ce c c n lg & Ec n my n e n oi S in eTe h oo y a oo
No. 5,t e 1 t is e 1 h 69 h s u
例 2

在 不 同字 符 排 序 设 置 下 比 较 字 符 串 的 大
运 算 符 = =和 ¥仅 适 用 于 字 符 型 数 据 。 其 他 运 算 符 适 用 于 任 何 类 型 的数 据 。 2 字 符 型 数 据 的 关 系运 算 关 系 表 达 式 < 前 字 符 型 表 达 式 > ¥ < 后 字 符 型 表达式 >为子 串包 含 测试 , 果 前 者 是后 者 的 一个 如 子 字 符 串 , 果 为 逻 辑 真 ( T. , 则 为 逻 辑 假 ( 结 . )否 .
关 系 运算 两操 作 数类 型 须 一致 , 较 的结果 是 比 逻 辑 值 。 数 值 型 数 据 按 数 值 大 小 进 行 比 较 ;日期 型
M a hn 机 器 ) 序 : 定 的 字 符 排 序 次 序 与 c ie( 次 指 x ae 容 , 照 机 内 码 顺 序 排 序 , 微 机 中 , 文 B s兼 按 在 西 字 符 按 照 AS I码 值 排 列 , 格 在 最 前 面 , 写 字 CI 空 大 母 序 列 在 小 写 字 符 序 列 的 前 面 。 因 此 大 写 字 母 小 于 小 写 字 母 。 汉 字 的 机 内码 与 汉 字 国 际 码 一 致 。对 常 用 的一 级汉 字而 言 , 据 它们 的拼 音顺 序决 定大 小 。 根
T .
? “ ” “ ”, 李 ” “ ” “ 老 师 ” “ ” 一 <二 “ <王 ,王 <王

3、vf数据及运算

3、vf数据及运算

26
X ( 1) ( 2) ( 3) ( 4) ( 5) Y ( 1, 1) ( 1, 2) ( 1, 3) ( 2, 1) ( 2, 2) ( 2, 3)
Pub A C "Hello" L .F. N 87 L .F. L .F. Pub A N 45.6 L .F. N 45.6 L .F. D 12/26/08 L .F.
数值型数据:表示数量并可以进行算术运算的数
据类型,用字母N表示。数值型数据由数字、小数点 和正负号组成。数值型数据在内存中占用8个字节, 数据位数最大20位。 数值型类型还有整型(Integer)、浮点型(Float) 和双精度型(Double),但这3种数据类型只能用于 字段变量。
4
货币型:存储货币值的数据类型,字母Y表示。它
DIMENSION <数组名>(<下标上界1>[,<下标上界2])[,…] DECLARE <数组名>(<下标上界1>[,<下标上界2])[,…]

下标上界是一数值量,下标的下界系统统一规定为1。
25
数组一经定义,其每个元素都可当作一个内存 变量来使用,具有与内存变量相同的性质。 可以使用赋值命令给数组元素赋值,也可以给 整个数组的各个元素赋以相同的值。 在没有向数组元素赋值之前,数组元素的初值 均为逻辑假(.F.)值。 二维数组各元素在内存中按行的顺序存储,它 们也可按一维数组元素的顺序来存取数据。
定义格式:
#DEFINE
例如: #DEFINE #DEFINE
常量名 常量值
N 123 PI 3.1415926
优点:1提高了可读性,见名知意; 2便于修改程序,一改全改.

exam1

exam1

考点:VFP中字符串的“比较”
在VFP中,当判断两个字符串是否相等时,可以使用比操作符“==”和“=”。 当两个字符串用“==”进行比较时,操作符两边的字符串必须含有完全相同 的字符(包括空格),才认为是相等的(.T.),否则为不相等(.F.)。 当两个字符串用“=”进行比较时,其结果可能与预期的不完全相同。例如判 断:‘ab’=‘a’,其结果在不同的环境下,可能是.T.也可能是.F.。如果两个字符串 的长度相同,比较时从左到右逐个字符进行,如对应的字符有不相等的,则其比 较结果为不相等(.F.),如一直到结尾对应的字符都相等则其比较结果为相等 (.T.);如果两个字符串的长度不同,则在不同的命令中取决于不同的环境设置。 范例是长度不同的两个字符串在不同的命令中进行比较的结果 。 Do exam1.prg
考点:宏(&)的使用
在VFP中,程序设计中常用宏来简化一些常量定义,或者替代默些常用的数据库 操作。在程序设计使用时,应在使用的宏之前输入一个“&”符号。该符号表明紧 随其后的变量是一个宏。 格式: &<内存变量>[,字符表达式] 说明:宏“&”与内存变量之间不能有空格,内存变量只能是字符型。宏应用很灵 活,可以通过它替换出内存变量中的命令、表达式、字段名或文件名等。 看范例 Do exam2
测试:字段类型及长度
字符型简记: 数字型简记: 日期型简记: 日期时间型简记: 逻辑型简记: 备注型简记: 字符通用型简记: 货币型简记: 浮点型简记: 整型简记: 双精度型简记: 最大长度: 最大长度: 固定长度: 固定长度: 固定长度: 固定长度: 固定长度: 最大长度: 最大长度: 最大长度: 最大长度: 字节 字节 字节 字节 字节 字节 字节 字节 字节 字节 字节

关于VFP的字符串比较运算

关于VFP的字符串比较运算

关于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的字符串比较运算

关于VFP的字符串比较运算

关于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]史济民 .visual Forpro 及其应用系统开发. 清华大学出版社.2000.1 [2]王利等. 全国计算机等级考试二级教程——Visual FoxPro6. 0 程序 设计[M] . 北京:高等教育出版社,2004.6 [3 ] 萨师煊等. 数据库系统概论[M] . 北京:高等教育出版社,2001. [4 ] 李雁翎. Visual FoxPro6. 0 应用基础与面向对象程序设计教程[M] . 北京:高等教育出版社,2004.
2008 年 9 月
VFP 中关系运算符的探讨
张琳梅,张雪峰
(信阳农业高等专科学校, 河南 信阳 464000)
[摘一要]—在 Visual FoxPro 中, 关系运算是字符型数据的一个重要操作, 如果环境设置不当的话, 很可能或导致意 想不到的结果。文章针对字符型数据比较过程中经常出现的问题进行分析, 指出排除问题的关键所在, 对正确理解字符 型数据的关系运算有一定的指导意义。 [关键词]—VFP; 字符; 关系运算 [中图分类号] TP311.138.662s——[文献标识码] A———[文章编号] 1009-5489 2008) ( 09-0144-02
华 章 145
2 0 0 8 . 9
Machine (机器) 次序:指定的字符排序次序与 xBase 兼容,按照 机内码顺序排序,在微机中,西文字符按照 ASCII 码值排列,空格在 最前面,大写字母序列在小写字符序列的前面。因此大写字母小于 小写字母。汉字的机内码与汉字国际码一致。对常用的一级汉字 而言,根据它们的拼音顺序决定大小。 PinYin (拼音) 次序:按照拼音次序排列。 对于西文字符而言,空 格在前面, 字母按照拼音次序排列, 相同字母, 小写字母排在大写字 母之前。 St roke (笔画) 次序: 中、 西文都按笔画的多少排序。 1. 1. 2 命令方式设置。 设置字符比较次序的命令是:SET COLLATE TO “< 排序次序 名> ” 排序次序名必须放在引号当中。 排序次序名可以是 “Machine” 、 “PinYin” “St roke” 或 。 例 1 在不同字符排序设置下比较字符串的大小 set collate to Machine” & 按机内码排序 & “ ? c” < “ < “cde”“c” , < “abc”“王” , “国” .T., 显示结果依次为: .F., .F. ? 中国” < ,“ < “ “中国人” b” “B” .T., 显示结果依次为: .F. set collate to PinYin” & 按拼音排序 & “ ? c” < “ < “cde”“c” , < “abc”“王” , “国” .T., 显示结果依次为: .F., .F. ? 中国” < ,“ < “ “中国人” b” “B” .T., .T. 显示结果依次为: set collate to St roke” & 按笔画排序 & “ ? c” < “ < “cde”“c” , < “abc”“王” , “国” .T., 显示结果依次为: .F., .T. ? 中国” < ,“ < “ “中国人” b” “B” .T., 显示结果依次为: .T. 2、 字符串精确比较与 EXACT 设置 2.1 字符串的比较规则 字符串的比较采取逐字符比较的方法: ( 1) 串长相等且对应字符一样, 两串相等, 称为全等, 记作= =。 = “ABCD” 例如:ABCD” = “ ( 2) 两串没有比完便比出了大小, 则大值字符所在的串为大 ( 而不管串的长短) 。 > 例如:ABCDEFG” “ “ABBDEFG” > “ABCDEFG” “ABB”

不属于vfp逻辑运算

不属于vfp逻辑运算

不属于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"的表达式。

visualfoxpro的运算符与表达式

visualfoxpro的运算符与表达式

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))。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于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个空格,使要比较的两个字符串长度相等。

再比较"王老师"和"王",显然两个字符串不相等,且"王老师">"王"。

以上的各运算的结果不难理解。

相关文档
最新文档