江苏VFP等级辅导讲义(基础篇)(4)

2019-03-22 10:33

第五次

… … …. 【例4】将由ASCII码字符组成的字符串进行反序显示(即‘ABCD’显示‘DCBA’)(考点) store ?abcdef? to c,cc p=space(0) do while len(c)>0 p=left(c,1)+p c=substr(c,2) enddo

?cc+“的反序为”+p

循环结构分析表:分析每次循环各个变量的变化。 进入循环前:c=?abcdef?,p=?? 循环次数、变量 第一次 第二次 第三次 第四次 第五次 第六次 第七次 Len(c) 6>0 5>0 4>0 3>0 2>0 1>0 Left(c, 1) ?a? ?b? ?c? ?d? ?e? ?f? p ??+?a?=?a? ?b?+?a?=?ba? ?c?+?ba?=?cba? ?d?+?cda?=?dcba? ?e?+?dcba?=?edcba? ?f?+?edcba?=?fedcba? c ?bcdef? ?cdef? ?def? ?ef? ?f? ?? 0=0循环终止 【例5】将由任意字符(包括汉字)组成的字符串反序显示. STORE ?abc电脑de? TO c,cc P=SPACE(0)

DO WHILE LEN(c)>0 X=ASC(LEFT(c,1)) IF X>127 i=2 ELSE i=1 ENDIF P=LEFT(c,i)+P c=SUBSTR(c,i+1) ENDDO ?cc+“的反序为”+P

【例6】定义一个函数ntoc( ),当传递给一个0~9之间的数字时,返回一个中文的“零~九”(考点) FUNCTION ntoc PARAMETERS pDigit LOCAL cString

CString=“零一二三四五六七八九” RETURN SUBSTR(cString,pDigit*2+1,2) ENDFUNC

16

南天内部资料,严谨出售

【例7】计算S=1!+2!+3!+4!+5!(考点) S=0

FOR I=1 to 5 S=S+Fjc(i) ENDFOR ?S

FUNCTION Fjc PARAMETERS X P=1

FOR n=1 TO X P=P*N ENDFOR RETURN P ENDFUNC

第三章 表的创建与使用

第三章的考点分布在笔试和上机,笔试中经常会考一些理论分析,常出在选择题中,另外一个比较

重要的知识点是命令的掌握。不仅要会命令填空,而且还要会自己编写命令(经常出现在菜单操作题中)。 1.表的类型和组成

(1)类型:自由表和数据库表 (2)两者同:扩展名为DBF

(3)异:表设计器不同,数据库表与它所属的数据库之间有逻辑关系。 (4)组成:字段和记录

(5)字段:基本属性(字段名,数据类型,宽度,小数位数,空值支持) ? 字段名:每个字段的名字 ,用以在表中标识该字段。 ? 字段的数据类型:表中每个字段都有特定的数据类型。 数据类型 字符型 货币型 数值型 符点型 日期型 日期时间型 字母表示 C Y N F D T 宽度是否为固定 否 8 否 否 8 8 数据类型 双精度型 整型 逻辑型 备注型 通用型 字母表示 B I L M G 宽度是否为固定 8 4 1 4 4 ? 字段的宽度:是指该字段所能容纳数据的最大字节数。有一些数据类型的宽度是固定. ? 小数位数:对于数值型、浮点型和双精度型的字段,可以指定其小数的位数。如数据的整数部分不为0,则整个宽度至少应比小数位数大2,如是纯小数,则整个宽度只要比小数位数大1。 ? 空值支持(NULL):通过使用空值(NULL),就有了一个判定某个字段是否具有一个值的办法。 (6)扩展属性(格式,掩码,标题,注释,字段有效性规则),只有数据库表才有扩展属性 2.表的创建 (1) 操作(略)

17

(2) 命令:CREATE TABLE-SQL(考点)

CREATE TABLE 表文件名(字段名1 字段类型[(字段宽度[,小数位数])] [NULL|NOT NULL][,字段名2 ,?]) [例如]:某银行存款表(ck.dbf)的表结构如下所示。

字段名 zh crrq cq je 字段类型 字符型 日期型 数值型 货币型 宽度 15 8 3 8 小数位数 0 字段含义 帐号 存入日期 存期(月) 金额(元) 1)创建ck表的表结构,可以使用下列命令:

CREATE TABLE ck (zh C(15), crrq D, cq N(3,0),je (25) ) 3.表的修改

(1) 用表设计器修改(主要是表设计器的打开)

? 操作:在项目管理器中选择表,点击“修改”按钮,表设计器就打开了。 ? 命令:MODIFY STRUCTURE 打开当前工作区中表的设计器。 (2) 用ALTER-SQL命令(考点)

? 添加或修改字段

ALTER TABLE 表名 ADD|ALTER [COLUMN] 字段名 字段类型[(字段宽度[,小数位数])] 例如:ALTER TABLE xs ADD COLUMN bjmc c(12) ? 删除字段

ALTER TABLE 表名 DROP [COLUMN] 字段名 例如:ALTER TABLE xs RENAME COLUMN bjmc TO bj

? 字段重命名

ALTER TABLE 表名 ADD|ALTER|[COLUMN] 字段名 字段类型[(字段宽度[,小数位数])] 例如:ALTER TABLE xs DROP COLUMN bj

4.作区及当前工作区

(1)工作区:用以表示一张打开的表的区域,每个工作区有一个编号,称为工作区号。范围为1—

32747,前10个也可用A—J表示,所以通常表名不要取简单的英文字母,避免和工作区号混淆。后面可用W11—W32747表示。每个工作区只能打开一张表,如果打开第二张表,那么这个工作区中的前一张表将自动关闭。但是同一张表可以在不同的工作区中打开。 (2)当前工作区:VFP正在使用的工作区(默认的工作区),启动VFP后,默认为1 (3)当前工作区的命令设置:SELECT 工作区号|表别名 (考点)

(4)工作区号为0时,系统自动选择当前未被使用的最小编号的工作区。 SELECT 0(考点) (5)操作非当前工作区中的表的方法:

? 把非当前工作区的表选为当前工作区

? 在命令中强行指定工作区:IN 工作区号 | 别名 例如:GO TOP IN js(考点)

5.表的别名

这是对工作区中打开的表的一个临时的标识,利用它可以引用在工作区中打开的表,如未用ALLAS子句指定别名,则别名同表名,但如果一张表在多个工作区中打开且未指定别名,则除第一次打开的工作区中别名同表名,其它均用A—J及W11—W32747表示。 6.表的打开

18

南天内部资料,严谨出售

USE 表名 [IN 工作区号| 表的别名] [AGAIN] [ALLAS 表的别名] [NOUPDATE]

其中AGAIN表示再一次,只要不是第一次打开表,就要加它。IN 工作区号| 表的别名 表示在非当前工作区打开表。 7.表的关闭

USE 关闭最近打开的表

CLOSE DATABASES 关闭数据库及其中的表 CLOSE TABLES 关闭所有打开的表 CLOSE ALL 关闭所有打开的文件 8.表的独占和共享(考点)

? 设置独占与共享打开表的默认状态 工具—选项—数据

或 set exclusive off | on,其中exclusive表示独占。 ? 强行用一种方式打开表 打开窗口右下角有设置

或 use 表名 share | exclusive

注:当一个表被多次打开时,只能以第一次为准。 9.记录处理

(1)记录指针:用于指示当前处理的记录位置。打开表时,指向第一条记录。 (2)当前记录:记录指针所指向的记录

(3)记录号:当用户向表中输入数据时,VFP按顺序为每条记录指定一个记录号。第一条记录记录号

为1,以此类推。

(4)几个函数:(考点)

? RECNO(): 测试记录指针的值,也可从状态栏观察记录条数及当前的记录号;返回结果类型是

数值型。

? BOF(): 测试记录指针是否指向记录的开始标志;返回结果类型是逻辑型。 ? EOF(): 测试记录指针是否指向记录的结束标志;返回结果类型是逻辑型。

[注]:从第一条记录向上移动一个记录,BOF()为.T.,RECNO()值为1,如果继续 SKIP –1 出错。

从最后一条记录向下移动一条记录,则EOF() 为 .T.,RECNO()的值为记录总条数加1,继续SKIP 则出错。以上三个函数是对当前工作区中的表而言的。 ? select([0|1|别名]):返回工作区号;返回结果类型是数值型。

0:当前工作区号,1:当前未被使用最大工作区号, 别名:表别名所在的工作区号,别名必加引号。 例如:?select(“xs”)

? used([区号|别名]):测试指定表或工作区是否打开,返回结果类型是逻辑型。 ? alias([区号]):返回指定工作区中的表别名,返回结果类型是字符型。

? field(字段顺序号[,区号|别名]):返回已打开表的指定序号的字段名。返回结果类型是字符型。 ? fcount([区号|别名]):或fieldcount([区号|别名]) 返回已打开表的字段数。返回结果类型是数

值型。

? delete():测试表的当前记录是否带删除标记。返回结果类型是逻辑型。 (5)记录的输入:(操作略)

? 使用 INSERT-SQL 命令(考点)

19

INSERT INTO 表名[(字段1[,字段2?])] VALUES(表达式1[,表达式2?]) 其中字段与表达式是一一对应的,字段1与表达式1对应,即位置对应,类型也要对应。字段省略表示对表中每个字段都输入值,也可以为表中的某些字段的输入值,只要满足对应就行。 例:insert into xs(xh,xm,xb,csrq) values(?950101?,?王一平?,?男?,{^1983/08/06}) ? 使用APPEND 和APPEND FROM命令追加记录(考点)

APPEND [BLANK] [IN 区号|别名]

说明:APPEND 表示以追加方式追加记录,可以输入多条记录。

APPEND BLANK 表示追加一条空白记录 IN 区号|别名 表示操作非当前工作区的表 APPEND FROM 文件名 [DELIMTED|XLS]

说明:将某个文件中的记录追加到当前工作区中的表。DELIMTED 表示文本文件,XLS 表示

Excel电子表格文件,省略表示DBF表文件。

(6) 记录的定位:()

? 绝对定位 GOTO|GO N (直接将记录指针指向第N条记录)

? 相对定位 SKIP N 或 SKIP –N (指相对于当前记录向下 + 或向上- 移动N条记录) ? 条件定位 LOCATE [范围] FOR 或 SEEK, SEEK() ? 范围:ALL 表示表中所有记录;

NEXT N 从当前记录开始的N条记录 RECORD 指定的记录

REST N当前记录后的所有记录

? 命令 GO TOP (直接跳到第一条记录)

(7)记录的修改:(考点)

? 使用REPLACE命令

REPLACE 字段1 WITH 表达式1 [,字段2 WITH 表达式2 ]?[范围] [FOR 条件] 例如:use gz

replace jbgz with jbgz+200 for zc=”讲师” ? 使用UPDATE-SQL命令

UPDATE 表名 SET 字段1=表达式1 [,字段2=表达式2?] [WHERE 条件表达式] 例如:update gz set jbgz=jbgz+200 for zc=”讲师”

(8)记录的删除(考点)

首先要知道在VFP中要彻底删除表中的记录分两步走,第一步:作删除标记,即逻辑删除;第二步:彻底删除,即物理删除。 ? 作删除标记的命令

? VFP的命令:DELETE [范围] [FOR 条件表达式] [IN 工作区|别名] ? DELETE-SQL命令:DELETE FROM 表名 [WHERE 条件表达式] ? 彻底删除记录命令(要区分)

? PACK 彻底删除当前工作区中打开的表中有删除标记的记录。 ? ZAP 彻底删除当前工作区中打开的表中所有记录。 ? 恢复带删除标记的记录命令

RECALL [范围] [FOR 条件表达式]

GO BOTTOM (直接跳到最后一条记录)

RECALL 恢复当前记录,无论当前记录是否作了删除标记。

20


江苏VFP等级辅导讲义(基础篇)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:实习手册0

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: