好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第3章 VF程序设计基础.doc

7页
  • 卖家[上传人]:pu****.1
  • 文档编号:561620689
  • 上传时间:2023-01-26
  • 文档格式:DOC
  • 文档大小:77.50KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 计算机国二VF培训资料.VF程序设计基础.刘远军整理第2章 VF程序设计基础2.1常量与变量数据类型:数据有不同类型,如:C、N、D(8)、L(1)、I(4)、T(8)、Y(8)、M(4)……注意有些字段的宽度是系统规定的)2.1.1常量(值不变)字符型(C):三种定界符,单引号、双引号、中括号 (英文的标点符号)注意:①必须成对出现,两边一致 ②必须是英文标点 ③空串与包含空格的字符串不同④定界符本身也是字符串内容时,需用另外一种定界符为该字符串定界,如 "It's a dog." 、["aaa"]数值型(N):注意科学记数法 5.878E12等于5.878*10^12整型(I) 宽度系统定义4个字节(不含小数)货币型(Y):1、小数自动四舍五入取4位 2、用8个字节表示(宽度)日期型(D):{ }称定界符,^称脱字符,分隔符有3种(/, -, .)用8个字节表示(宽度)1、严格的日期格式:{^2006/09/01} ,任何情况下可以用2、传统的日期格式受set strictdate to 0|1的设置影响,0:不进行严格日期格式检查;1:进行严格日期格式检查。

      3、日期格式的设置命令SET CENTURY ON|OFF 年份用4位|2位 SET MARK TO 设置分隔符 如:set mark to "-" (注意一定加定界符)SET DATE TO YMD 按‘年月日’的格式 Y:年,M:月,D:日(默认显示是“月/日/年”)日期时间型(T)逻辑型(L):1、用一个字节表示 2、真、假值(.T.和.F.或.Y.和.N.)3、.T.>.F.为真2.1.2变量值可以随时更改,变量有内存变量(及数组变量)和字段变量1、命名规则:名字组成可以是字符(包括汉字)、下划线、数字要点:但不能以数字开头,只能以字符(英文、中文)或下划线开头2、变量赋值“=“:单个变量赋值 (“=”也可以是关系(比较)运算符,注意区别)STORE TO :多个变量赋相同值A=56 &&把数值型常量56赋给变量ASTORE 80 TO D,B,C变量的值是最后一次赋的值(要点)A=24 &&把24这个数值型常量赋给变量A,A是数值型变量,其值为24A=‘BNM’ &&把’BNM’这个字符型常量赋给变量A,A是字符型变量,其值为’BNM’? A &&结果是BNM字符内存变量的数据类型由其值决定(要点) A=23 则变量A是一个数值型的内存变量。

      B=‘ABC’,则变量B是一个字符型的内存变量3、输出变量的值:?,?? A=12 ? A注意:当内存变量和字段变量同名时,优先输出字段变量的值,如要输出内存变量的值,应指明是内存变量 M->内存变量或M.内存变量4、内存变量其他命令显示(display memory或list memory)LIKE 模糊匹配,*、?表示任意一串或一个(通配符)清除 clear memory 或release <内存变量名表> 例:list memory like A* 显示以字母A开头的内存变量数组:数组是内存中连续的一片存储区域数组应先定义,后使用1、创建或定义数组 DIME F(2,3) 定义一维数组 DIME F(9) 定义二维数组 DIME F(2,3)2、定义数组后,每个元素初值为.F. 3、F=3,则所有元素的值都赋值34、用一维数组的形式访问二维数组:(按行的顺序访问)二维F(1,1)F(1,2)F(1,3)F(2,1)F(2,2)F(2,3)一维F(1)F(2)F(3)F(4)F(5)F(6)2.2表达式表达式是指常量、变量、函数通过特定的运算符连接起来的式子。

      注意:单一的运算对象(如常量、变量或函数)也是表达式1、数字表达式:同数学的算术表达式,运算符,()、*、+……2、字符表达式:+(完全连接),-(紧凑连接)注意:①紧凑连接也叫空格右移连接,会将左边字符串的尾空格移到连接以后的新字符串的后面,但是不会减少空格的数目②字符表达式的结果还是字符型数据3、日期表达式: 日期-日期,日期+N,日期-N 结果:日期或数值注意:日期+日期是非法的 4、关系表达式(比较表达式): 结果:逻辑型l 数值、货币、日期数据比较:按大小(日期型数据按先后,越在先的日期越大)l 字串包含测试:A、B是字符型变量,A$B,A是B的子串,则为真,否则为假如: ? ‘女’$’男女’ ——>.t. ? ‘学生’$’大学生’ ——>.t.l 字符排序:工具——选项——数据——排序序列中设置l 精确比较“==”与模糊匹配“=”注意:①、相等“=”比较运算时,右边字符串同左边字符串的开始部分,为真(当set exact off时) ②、关系运算符的两边数据一定要匹配 ③、和$运算的区别,例如查找姓名中有“王”字的同学,应分别写成 姓名=”王” 或者 ”王”$姓名5、逻辑表达式: .T.>.F. 为真 结果:逻辑型优先级(高——>低):非(NOT),与(AND),或(OR)※运算符优先级:算术—字符—日期—关系—逻辑2.3 函数数值函数1、绝对值函数和符号函数 ABS(<数值表达式>) SIGN(<数值表达式>)2、平方根函数 SQRT(<数值表达式>)3、取整函数 INT(<数值表达式>) 、ceiling(<数值表达式>)、floor(<数值表达式>)4、四舍五入函数 ROUND(<数值表达式1>, <数值表达式2>)5、余数函数 MOD(<数值表达式1>, <数值表达式2>) 注意两个表达式符号不同时的情况字符函数 1、字符串长度函数 LEN(<字符表达式>) 【重点】 ? len(space(10)-space(10)) &&答案是202、大小写转换函数upper()、lower()3、空格字符生成函数 SAPCE(<数值表达式>)4、删除前后空格函数 ALLTRIM(<字符表达式>)【重点】A=" abc " 【注:abc前面还有2个空格,后面有3个空格】? len(a) &&答案8? len(alltrim(a)) && 答案35、取子串函数 SUBSTR、LEFT、RIGHT 【重点】 A="计算机科学技术"? SUBSTR(A,7,4) &&答案 科学 ? LEFT(A,6) &&答案 计算机 ? RIGHT(A,4) &&答案 技术 例:有如下赋值语句,结果为”大家好”的表达式是 a=”你好” b=”大家”A、b+at(a,1) B、b+right(a,1) C、b+left(a,3,4) D、b+right(a,2)6、计算字串出现次数函数 OCCURS(<字符表达式1>,<字符表达式2>)?occurs("计","计算机是计算的机器") && 答案为27、求子串位置函数AT()结果:数值型 ? AT(‘is’,’this is book’,1) && 答案为3 ? AT(‘is’,’this is book’,2) && 答案为6 ? AT(‘人民’,’中华人民共和国’) && 答案为58、子串替换函数STUFF() ? STUFF(‘GOOD BYE’,6,3,’MORNING’) && 答案为GOOD MORNING9、字符替换函数 CHRTRAN() ? CHRTRAN(‘ABACAD’,’ACD’,’X12’) && 答案为XBX1X2日期时间函数1、年份、月份、天函数YEAR( ) MONTH( ) DAY( )数据类型转换函数1、数值转换字符 STR(〈数值表达式〉,……) 数字——>字符2、字符转换数值 VAL(〈字符表达式〉) 字符——>数值3、字符转换成日期 CTOD()日期转换成字符 DTOC() A=DATE() ? DTOC(A) &&转换后输出的格式MM/DD/YYYY ? DTOC(A,1) &&带参数1,则转换后输出的格式是YYYYMMDD,没有分隔符 ? LEFT(DTOC(A,1),4) && 答案为2011宏替换函数 &,替换出字符型变量的内容 【重点】 A=’10+90’ ? a &&答案: 10+90? &a ,&a+500 &&答案: 100,600测试函数1、值域测试函数 BETWEEN ?BETWEEN(50,50,200) 包含两头2、空值测试函数 ISNULL .null. 相当于不确定(输入CTRL+0)3、“空值”测试函数 EMPTY() ? EMPTY(0) “空值”对于不同的数据类型不同例:? EMPTY(.null.),EMPTY(45),EMPTY(''),EMPTY(0) &&答案:.F. .F. .T. .T.? ISNULL(SPACE(0)), ISNULL(.null.), ISNULL(45) &&答案:.F. .T. .F.4、数据类型测试函数 VARTYPE() ? VARTYPE(TIME()) &&时间函数的数据类型返回值是字符 C? VARTYPE(123) &&返回数据类型是数值 N? vartype(.null.) &&“空值”的返回值是X表文件头BOF()、尾EOF()、记录号RECNO()、记录个数RECCOUNT()测试函数例1:数据表ABC有20条记录 USE ABC ? BOF() ——>.F. SKIP -1 ? BOF() ——>.T. ? RECNO() ——> 当前记录号的值是1 GO BOTTOM ? EOF() ——>.F. Skip ? eof() ——>.T. ? recno() ——> 注意:当前记录号的值是21 注意:空表的bof()和eof()函数都为真例2:USE ABC &&打开表ABCDO WHILE NOT EOF( ) *当指针不是指向文件尾时,运行循环体,直到指针指向文件尾止DISP &&显示当前记录SKIP &&指针下移ENDDO条件测试函数? IIF(LEN(SPACE(5))<>5,1,-1) 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.