数据库原理与应用第14章.ppt_第1页
数据库原理与应用第14章.ppt_第2页
数据库原理与应用第14章.ppt_第3页
数据库原理与应用第14章.ppt_第4页
数据库原理与应用第14章.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第14章 FoxPro与其它语言 的联系,14.1 FoxPro与其它语言交换数据的方法 14.2 库文件与文本文件的数据交换 14.3 直接调用其它高级语言的命令 RUN 14.4 调用汇编语言子程序,14.1 FoxPro与其它语言交换数据的方法,1. 交换数据的基本方法 一般, FoxPro与其它语言程序是通过文本文件来相互交换数据的。 但是, 只有具有SDF格式(系统数据格式)或DELIMTED格式(用户定义分隔符格式)的文本文件才能完成这个任务, 图14CD*21描绘了这种交换数据的方法。,图 141 FoxPro与其它语言程序交换数据法,FoxPro可以利用自己的命令把库文件的数据传送给具有SDF格式或DELIMITED格式的文本文件; 也可以用自己的命令, 从具有SDF格式或DILIMITED格式的文本文件中读入数据并构成库文件的记录。 但这两种方法不涉及库文件的记忆型字段。 任何一种其它语言程序, 都可利用自己的命令, 从具有SDF格式或DELIMITED格式的文本文件中为自己的变量读入数据; 或用自己的命令, 把自己程序运行的结果数据传送给具有SDF格式或DELIMITED格式的文本文件。,2. SDF格式文本文件 SDF格式文本文件称为系统数据格式文本文件, 它在格式上与库文件有着很多相似之处。 首先, 每一个字段的宽度是固定的, 等于原库文件中该字段的定义宽度, 因此各记录的长度也是相同的。 在SDF格式文本文件中, 原库文件的字符型字段和数字型字段数据将原样存储, 即字符型数据左对齐存放, 右边不足部分填以空格; 数字型数据右对齐存放, 左边不足部分填以空格。,3. DELIMITED格式文本文件 DELIMITED格式文本文件又称为用户定义分隔符格式文本文件或紧凑格式文本文件。 它和SDF格式的差别在于: 同一字段中, 各字段值的宽度不再固定为原字段定义宽度, 而是等于字段值的实际宽度。 也即, 原字符型数据的尾部空格和原数字型数据的头部空格都被删去。 在同一记录中, 各数据项之间用分隔符隔开。 (表142的分隔符为逗号, 表143 的分隔符为空格。) 原字符型数据还有单独的标界符(表142中为双引号; 表143是特殊情况, 没有单独标界符)定界。,14.2 库文件与文本文件的数据交换,FoxPro可以用自己的命令把库文件数据传送给具有SDF格式或DELIMITED格式的文本文件, 也可以用自己的命令从相应的SDF格式或DELIMITED格式文本文件提取数据给库文件(组成新的记录)。 1. 库文件数据传送给文本文件 (1) 生成SDF格式文本文件。 在FoxPro状态下, 把当前库文件内容传送给SDF格式文本文件的命令为:,COPY TO 文件名 FOR条件 WHILE条件 范围 FIELDS字段名表TYPESDF 功能: 此命令把当前库文件中指定范围内符合条件记录的指定字段, 按SDF格式复制到命令中规定的文本文件中。 命令中若无范围项, 则范围为ALL; 若无FIELDS项, 则复制全部字段(除记忆型); 若无条件项, 则复制范围内全部记录。 文件名默认扩展名为.TXT。 TYPE项可省略。,例1 USE 职工 COPY TO ZGS SDF TYPE ZGS.TXT 输出SDF格式文本文件ZGS.TXT, 结果见表141。 (2) 生成DELIMITED格式文本文件 命令格式: COPY TO 文本文件名 FOR条件 WHILE条件 范围 FIELDS字段名清单 TYPEDELIMITEDWITH分界符,功能: 此命令把当前库文件中指定范围内符合条件记录的指定字段, 按DELIMITED格式复制到命令中规定的文本文件中。 命令中若无范围项, 则范围为ALL; 若无FIELDS项, 则复制全部字段(除记忆型字段); 若无条件项, 则复制范围内全部记录。 命令中文本文件的默认扩展名为.TXT; 若无分界符项, 则原字符型字段数据都用双引号括起; 若用分界符项, 则原字符型字段数据都用分界符括起; 同一记录的各字段值之间一般都用逗号分隔, 但当分界符是BLANK时, 同一记录的各字段值之间将用空格分隔。 TYPE项可省略。,例2 USE 职工 COPY TO ZGDS DELIMITED TYPE ZGDS.TXT 输出结果见表142。 例3 USE 职工 COPY TO ZGDB DELIMITED WITH BLANK TYPE ZGDB.TXT 输出结果见表143。 自己定义分界符后, 字符串中就可以包含逗号。 当然, 所有分界符必须不在字符数据中出现。,2. 文本文件内容传送给库文件 (1) SDF格式文本文件内容传送给库文件。 在FoxPro状态下, 把SDF格式文本文件内容追加入当前库文件的命令为: APPEND FROM 文件名 FIELDS字段名清单 FOR条件TYPESDF 功能: 把指定SDF格式文本文件内容中符合条件者, 追加入当前库文件。在无条件时, 全部追加; 否则, 只追加符合条件者。 在无FIELDS项时, 为所有字段追加数据; 否则, 只为指定字段追加数据。,步骤: 以当前库文件的字段宽度为准, 逐个字段地为一条记录的指定字段读入数据。 若在SDF格式文本文件中遇到了回车换行符, 则在库文件中开始追加新的一条记录(在刚才追加的那条记录中, 可能最后还有指定字段未输入数据); 若库文件中一条记录的所有指定字段都已顺次追加完数据, 则在SDF格式文本文件中跳到下面一个回车换行符后, 再开始为库文件追加新的一条记录(SDF文件中, 刚才被读的那一行的最后一些数据, 可能未用到); 若在库文件中遇到一个记忆型字段, 系统也认为一条记录已追加完毕。,(2) DELIMITED格式文本文件内容传送给库文件。 在FoxPro状态下, 追加DELIMITED格式文件内容到当前库文件的命令为: APPEND FROM 文件名 FIELDS字段名清单FOR条件 TYPE DELIMITED WITH分界符 功能: 此命令把命令中给出的DELIMITED格式文本文件内容中的符合条件者, 追加入当前库文件。 命令中文件名的默认扩展名为 .TXT。 在无FIELDS项时, 为所有字段追加数据。,步骤: 顺次为追加记录的指定字段读入数据。 库文件的一个记录追加完毕, 则在文本文件中跳到下一个回车换行符后, 开始为新记录追加数据; 若在文本文件中遇到一个回车换行符, 则结束正在追加的记录, 再开始追加一个新记录; 若在库文件中遇到一个记忆型字段, 则结束追加本记录, 在文本文件中跳到一个回车换行符后, 开始追加一个新记录, 直至结束。,由上可知, SDF格式的文本文件只能被追加SDF格式的APPEND命令使用, DELIMITED格式文本文件也只能被追加DELIMITED格式的APPEND命令使用。 而且, 一定分界符的DELIMITED格式文件也只能被规定了同样分界符的APPEND命令使用。 因此, 是选择第一条SDF命令; 还是选择第二条DELIMITED命令; 如果选DELIMITED命令到底选择什么分界符; 这些都完全取决于被读文本文件。,14.3 直接调用其它高级语言 的命令RUN,1. RUN命令 有两种命令格式: RUN /NK外部可执行文件名/MSDOS命令! /NK外部可执行文件名/MSDOS命令 在MSDOS支持下使用RUN命令时, 操作系统文件COMMAND.COM必须在当前目录中或在能被MSDOS COMSPEC找到的位置(见MSDOS手册中有关SET COMSPEC内容)。,在FoxPro中, 有一个名为FoxSwap的内存管理实用程序, 它为RUN命令提供了更多的内存空间。选择项/N或/NK指定该RUN命令所用内存空间量。 N为一个数值, 单位为KB。 当N=0时, 该RUN命令将得到最大的内存空间。 当N0时, 则: 缓冲区内容写进磁盘; 或内存中有N(KB)可用空间, 则执行该RUN命令; 否则, 执行FoxSwap。,例 下列命令提供120 KB内存空间, 执行外部文本编辑程序MYEDITOR。 ! /120 MYEDITOR 注意, 不要规定超过需要的内存空间, FoxSwap要花费额外的时间。,14.4 调用汇编语言子程序,FoxPro可直接调用汇编语言程序, 主要使用三条命令。 1. LOAD命令 命令格式: LOAD 文件名SAVENOSAVE 本命令把一个二进制程序装入内存, 供FoxPro的CALL命令调用。 该文件名的默认扩展名为 .BIN。 若文件名与已装入内容的某文件同名, 即使扩展名不同, 也将覆盖前已装入内存的文件。 在内存中, 最多可同时存在16个64 KB的这类文件。,在LOAD命令和CALL命令中, 可使用选择项SAVE及NOSAVE(NOSAVE是默认值)。 在CALL中的SAVE、 NOSAVE优先于LOAD中的SAVE、 NOSAVE。选择SAVE后, 一从二进制文件返回, FoxPro将把显示器RAM的内容复制到 FoxPro 桌面或主窗口(假定二进制文件直接写进显示器RAM)。 一般地, 不要选用SAVE项, 因为它将花费一些额外时间。 在建立二进制代码文件时, 应注意: 程序的第一条可执行指令必须放在偏移量为0处; 不允许程序使用超出其本身大小的存储区域; 程序不得改变在DS:BX中作为自变量的内存变量的长度; 返回FoxPro前, 应恢复CS和SS寄存器; 应以远程返回指令返回FoxPro, 否则只能被RUN命令调用。 (不能用LOAD和CALL命令来调用。),建立汇编文件的步骤如下: 用MASM文件名对源文件进行汇编, 产生一个目标文件; 用LINK文件名连接目标文件, 生成一个可执行文件; 用EXE2BIN文件名产生二进制文件。 当使用字符型变量时, 不能改变其值长度; 当从一个调用到下一个调用而存储字符串地址时, 也应重新设置已经用过而又准备存入新内容的字符串地址。,2. CALL命令 格式: CALL 文件名WITH字符表达式/内存变量SAVE/NOSAVE 功能: 执行由LOAD命令装入内存的二进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论