Visual Foxpro 程序设计基础
一、 重要知识点
1. 常量:.数值型:占8个字节
.货币型:占8个字节,采用4位小数,(四舍五入),如$123.456789将储存为$123.4568
.字符型:(字符串)不包含任何字符的字符串是空串 “”,空串与包含空格的字符串不同” ”(单双引号,方括号(定界符)都要是英文的)
“?”换行,“??”不换行
.日期型:分隔符(/,-,.,空格);默认斜杠,8个字节
必须有脱字符^
命令格式: SET MARK TO [<日期分隔符>]
SET DATE TO [AMERICAN(mm/dd/yy默认)]
YMD(yy/mm/dd)
SET CENTURY ON|OFF|TO [<世纪值>[ROLLVER<年份参照值>]]
(ON 显示世纪,4位数表示年份,1992)
(OFF 不显示世纪,2位,92,默认)
(TO 解释一个用2位数字年份表示的日期所处的世纪,年份小于参照值,世纪值加1)
SET STRICTDATE TO [0|1|2]
(0 不进行严格的日期格式检查;1进行,默认;2 进行)
例:SET CENTURY ON
SET MARK TO
SET DATE TO YMD
?{^2011-2-11}
显示:2011/2/11
.日期时间型:{<日期>,<时间>}默认AM,8个字节
.逻辑型:.T. .t. .Y. .y. 真,.F. .f. .N. .n. 假;两个句点不可少,是定界符。
2.变量 , 创建数组 DIMESION y(2,2)
.内存变量赋值STORE <表达式> TO <内存变量>
<内存变量>=<表达式>
.内存变量的显示LIST MEMORY LIKE 通配符 ;一屏显示
DISPLAY MEMORY LIKE 通配符 ;多屏显示
通配符有*和?,*表示任意多个字符;?表示任意一个字符
例:LIST MEMORY LIKE A* 表示只显示变量名以A开头的所有内存变量
.内存变量的清除 CLEAR MEMORY 清除所有
RELEASE <指定内存变量>
RELEASE ALL [EXTENDED用于程序中]清除所有
RELEASE ALL [LIKE 通配符|EXCEPT 通配符]
LIKE 清除与通配符匹配的内存变量 EXCEPT 清除与通配符不匹配的
表与表组之间的数据传递
将表的当前记录复制到数组 SCATTER TO
将数组数据复制到表的当前记录 GATHER FROM
3.表达式
A.数值表达式 + — * ^ / %(求余)
B.字符表达式 +:首尾相接 —:两字符串相连,前一个字符的尾部空格移到新字符串尾部 Len( )用于计算字符串的长度
c.日期时间表达式
日期+天数(后多少天); 日期—天数(前多少天); 日期—日期(得相差的天数); 日期时间+秒数(多少秒后)
日期时间—秒数(多少秒前) 日期时间—日期时间(相差的秒数)
d.关系表达式< > = <= >= 不等于(<> 或#或!=)==(字符串精确比较) $子串包含测试
.T.大于.F. <字符表达式1>$<字符表达式2> 若字符1是字符2的一个子字符串,则结果为逻辑真,否则为逻辑假
设置字符排序次序命令:SET COLLATE TO “排序次序名”
Machine :机内码,空格最前,大写ABCD ,小写abcd
PinYin :拼音次序,空格最前,小写abcd ,大写ABCD
Stroke:不论中西文,书写笔画
两字符串完全相同==结果才为真
SET EXACT ON|OFF ON是尾部加上多个空格,使得两字符串的长度相等,OFF默认值,只要两者前面部分匹配就为逻辑真
e.逻辑表达式 运算符:NOT AND OR
4.常用函数
A.数值函数 ABS()绝对值 SIGN() 指定符号,运算结果分别为正、负和零时,输出1、-1、0
SQRT 求平方根 PI()圆周率
求整数 INT()取整数部分 INT(5.8)=5
CEILING()取大于等于它的最小整数CEILING(5.8)=6
FLOOR()取小于等于它的最大整数FLOOR(5.8)=5
四舍五入函数ROUND(数值表达式1,数值表达式2)
表达式2为四舍五入的位置ROUND(345.345,2)=345.35
ROUND(345.345,0)=345 ROUND(345.345,-1)=350
求余 MOD(被除数 ,除数 )
余数符号同除数符号,被除数与除数同号时,函数值为两数相除的余数;异号时,函数值为相除的余数加上除数的值
MOD(1O,3)(10除以3)=1 MOD(10,-3)=1+(-3)=-2 MOD(-10,-3)=-1 MOD(-10,3)=-1+3=2
最大最小 MAX() MIN()
B.字符函数字符串长度 LEN()大小写转换 LOWER()大到小 UPPER()小到大
空格字符串生成 SPACE <数值表达式>
删除前后空格 TRIM() 去后空格 LTRIM()去前空格 ALLTRIM()去前后空格
取子串 LEFT(表达式,长度) RIGHT(GOOD,2)
子串首字符位置AT( 字符表达式1,字符表达式2,第几次出现)
ATC(同上)ATC不分大小写,AT分, 默认第一次
例:STORE “This is Visual Foxpro”TO x
?AT(“fox”,x) ,ATC(“fox”,x),AT(“is”,x,3), AT(“xo”,x)
0 16 10 0
子串替换 STUFF(字符1,起始位置,长度,字符2)
字符替换 CHRTRAN (字符1,字符2,字符3)
字符串匹配 LIKE(字符1,字符2) 分大小写
C.日期和时间函数DATE()函数值为日期型 TIME() 字符型 DATETIME()日期时间型 YEAR() MONTH() DAY()
HOUR() MINUTE() SEC()
D.数据类型转换函数
数值转换成字符 STR(数值表达式,长度(默认10),小数位数(0))
字符串转换成数值 VAL(字符表达式)
例:STORE ‘-123.’ TO x
STORE ‘45’TO y
STORE ‘A45’TO z
round函数有几个参数 ?VAL(x+y),Val(x+z),VAL(z+y)
-123.45 -123.00 0.00
字符转换成日期CTOD()或日期时间型CTOT(W)
日期或日期时间转换成字符串DTOC() TTOC()
宏替换函数(字符型变量) & 替换出字符变量得具体内容
E.测试函数
值域测试函数 BETWEEN <表达式T><表达式L><表达式H〉若值L<=T<=H,则函数值为逻辑真,否则为逻辑假,L、H中有一个是NULL值,则函数值也是NULL值
空值NULL 值测试函数 ISNULL<表达式>表达式的运算结果是NULL值是,返回逻辑真,否则为逻辑假
“空”值测试函数 EMPTY<表达式> EMPTY<NULL>结果是逻辑假
数据类型测试函数 VARTYPE<表达式>
用VARTYPE()测得的数据类型
返回的字母 | 数据类型 | 返回的字母 | 数据类型 |
C | 字符型或备注型 | G | 通用型 |
N | 数值型、整型、浮点或双精度型 | D | 日期型 |
Y | 货币型 | T | 日期时间型 |
L | 逻辑型 | X | NULL值 |
O | 对象型 | U | 未定义 |
表文件尾测试函数EOF测试记录指针是否指向文件尾,是就返回逻辑真
表文件首 BOF〈工作区号〉〈表别名〉
记录号测试函数 RECNO()返回记录号 表未打开,函数值为0 ;记录指针在尾,函数值为记录号+1 ;在首,函数值为第一条记录的记录号
记录个数测试函数 RECCOUNT
条件测试函数 IIF〈逻辑表达式〉〈表达式1〉〈表达式2〉
若逻辑表达式的值为逻辑真,返回表达式1的值,否则返回表达式2的值。
记录删除测试函数 DELETE 测试当前表文件或指定表文件中的当前记录是否有删除标记“*”,有就返回逻辑真,否则返回逻辑假
5.程序与程序文件
扩展名 .prg 命令格式:MODIFY COMMAND
终止程序:CANCAL 执行程序:DO 退出:QUIT
结束当前程序运行,返回上级:RETURN
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论