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
.日期时间型:{<日期>,<时间>}默认AM8个字节
.逻辑型:.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、-10
              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 FoxproTO 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,则函数值为逻辑真,否则为逻辑假,LH中有一个是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小时内删除。