数组和表之间的数据交换.docVIP

  • 2
  • 0
  • 约2.21千字
  • 约 6页
  • 2016-02-25 发布于江苏
  • 举报
数组和表之间的数据交换.doc

二、数组和表之间的数据交换 1、将表中记录传送到数组或内存变量 命令:SCATTER [FIELDS字段名表][MEMO]TO 数组名?[BLANK]|MEMVAR [BLANK] 功能:将当前记录的字段值按字段名表顺序依次送如数组元素中,或依次送如一组内存变量。 说明:①若选择FIELDS子句,则只传送字段名表中的字段值,否则将传送所有字段值(备注型和通用型字段除外)。若要传送备注型字段值,还需要使用MEMO项。 scatter 用法一:将当前记录的值赋给内存变量 格式:scatter [fields 字段名表] MEMVAR 例如:use 学生 go 3 disp scatter fields 学号,姓名,入学成绩 memvar ?m.学号,m.姓名,m.入学成绩 scatter 用法二:将当前记录的值赋给数组变量 格式:重点掌握 scatter [fields 字段名表] to 数组变量名例如: use xsda go 3 scatter fields 学号,姓名,入学成绩,简历 to kk memo list memo like kk 例如:use xsda????? go 3????? dime ks(3)????? scatter to ks????? list memo like ks 思考:KS的单元有几个?备注型字段的值传到了数组ks中吗?通用型字段呢???? 6?????????????????????? NO????????????????? NO 结论:1、scatter to 数组变量名时,数组可以不先定义。数组的下标大小由字段个数确定 2、如果定义了数组,如果字段个数超过了数组下标,则会下标会自动扩展下标说明:dime arr(4)? 4就是下标 3、通用型不能赋给数组,备注型可以,但是必须要加参数memo 例如:scatter to yuio memo? (yuio的单元就变成7个了) 2、将数组或内存变量的数据传送到记录 命令:GATHER? FROM? 数组名|MEMVAR[FIELDS字段名表][MEMO] 功能:将数组或内存变量的数据依次传送到当前记录,以替换相应字段值。 说明:①修改记录前应确定记录指针位置 ??②若使用FIELDS子句,仅字段名表中的字段才会被数组元素替代.缺省MEMO子句时将忽略备注型字段. ??③内存变量值将传送给与它同名的字段,若某字段无通明的内存变量,则不对该字段进行数据替换。 ??④若数组元素多于字段数,则多余的数组元素不传送,而数组元素少于字段数,则多余的字段其值不会改变。 gather from 数组? :将数组的值传递给表。 例如:use xsda???? ??? go 3?? ????? disp??? ????? dime ks(3) ????? scatter to ks??? ?????ks(3)=”张三”???? ?gather from ks??? disp 例:use 学生 ?dime? hh(3) ??list ?go 3 ?scatter to hh ??hh(2) ?hh(2)=”李四” ?gather from hh ?List GO? 5 SCATTER? MEMVAR DISP?? MEMO 学号=“A0201105” ?GATHER? MEMVAR DISP 2、多记录和数组之间的数据交换 (1)将表的一批记录复制到数组 命令:COPY? TO? ARRAY? 数组名[FIELDS字段名表][范围][FOR条件][WHILE条件] 功能:将当前表选定的数据复制到数组名表示的数组中,但不复制备注型字段. 说明:①若命令中指定的数组不存在,VF会自动建立 ??②可以将单个记录的数据复制到一维数组中。 ??③该命令能将当前表的多个记录复制到二维数组中。 注:若数组事先定义,则该命令不会调整数组的大小。 例如:use xsda copy to array ABC ABC(2,6)=700 append from array ABC list 观察数组变量ABC的下标。 如果数组先定义就不同了: use xsda ?dime hen(3,4) copy to array hen list memo like hen 最后,数组hen的下标还是3,4 (2)从数组向表追加记录 命令:APPEND? FROM? ARRAY? 数组名[FOR条件][FIELDS字段名表] 功能:将满足条件的数组行数据按记录依次追加到当前表中,但忽略备注型字段。 说明:①数组名可以是一维或二维数组。数组的行数就是所追加新记录的个数,即一维数组追加一个记录,而二维数组的每一行追加一个新记录。 ?②若数组列数多于字段数,多于列的数

文档评论(0)

1亿VIP精品文档

相关文档