中易网

文本文件怎样倒入到VFP中成为规范的数据库文件

答案:2  悬赏:60  
解决时间 2021-03-02 03:02
我有一个有500条记录的文本文件,如下 公告号=100358 公告日=2005.03.14 申请人=王小英 公告号=565654 公告日=2005.05.12 申请人=李小居 这只是其中两条记录,共有500条 要让他倒入DBF的VFP中成为合格的数据库文件,格式如下: 公告号 公告日 申请人 125463 2005.02.13 王小英 584595 2006.12.25 小李 要用VFP语言编程如何编呢?请给出代码过程。谢谢!!
最佳答案
create table mytable (公告号 c(6),公告日 c(11),申请人 c(20)) APPEND FROM mytxt.txt DELIMITED WITH space(1) 从一个文件中读入记录,追加到当前表的尾部。 APPEND FROM FileName | ? [FIELDS FieldList] [FOR lExpression] [[TYPE] [DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB | WITH CHARACTER Delimiter] | DIF | FW2 | MOD | PDOX | RPD | SDF | SYLK | WK1 | WK3 | WKS | WR1 | WRK | CSV | XLS | XL5 [SHEET cSheetName] | XL8 [SHEET cSheetName]]] [AS nCodePage] 参数 FileName 指定从哪个文件中读入记录。如果给出的文件名不包含扩展名,则将文件默认为 Visual FoxPro 表,扩展名为 .DBF。如果文件是 Visual FoxPro 表,无论SET DELETeD 为何种设置,表中标记为删除的记录也将添加到当前表中。 ? 显示打开对话框,从中可以选择从哪个表中读入记录。 FIELDS FieldList 指定添加哪些字段数据。 FOR lExpression 为当前选定表中每一条 lExpression 为“真”(.T.) 的记录追加新记录,直至达到当前选定表的末尾。如果省略 FOR,则整个源文件记录都追加到当前表中。 TYPE 指定源文件类型。如果指定的源文件类型不是 Visual FoxPro 表,则必须指定文件类型,但不必包括 TYPE 关键字。您可以从各种类型文件(包括分隔 ASCII 文本文件)中读入信息添加到表中,在这些文件中可以指定字段分隔符。 如果要追加的源文件扩展名不是默认的扩展名,源文件名必须包括文件扩展名。例如,Microsoft Excel 工作表通常具有 .XLS 扩展名。如果要追加的 Microsoft Excel 工作表扩展名不是 .XLS,一定要指定扩展名。 注意 如果要追加的记录来自工作表,工作表中的数据必须以主行序而非主列序存储,这样才能使追加的工作表数据符合表结构。 DELIMITED 指定源文件为分隔数据文件。分隔数据文件是 ASCII 文本文件,文件中每条记录以回车和换行符结尾。各字段内容默认地由逗号分开,字符字段值还需要用引号括上。例如: "Smith",9999999,"TELEPHONE" 所有分隔数据文件的扩展名默认为 .TXT 数据的格式。 如果日期格式正确,可以从分隔文件中导入日期数据,日期的默认格式为 mm/dd/yy。您还可以选择加入世纪信息。Visual FoxPro 导入的数据(如 12/25/95)不包含世纪信息,世纪信息的默认值为 20 世纪。日期分隔符可以为任意非数值字符,但不能使用分隔文件中字段的分隔符。 如果其他一些日期格式与 SET DATE 中可以使用的格式相匹配,Visual FoxPro 也可以导入这些格式的日期数据。若要导入非默认格式的日期,应在使用 APPEND FROM 前先发出 SET DATE 修改数据格式设置。要想检查日期格式是否能成功地导入,可使用CTOD()函数。如果 CTOD()函数接收此日期值,则日期数据就能正确地导入。 DELIMITED WITH Delimiter 字符字段由 Delimiter 标识,而非引号。 DELIMITED WITH BLANK 由空格符 (BLANK) 分隔字段,而不是用逗号分隔字段。 DELIMITED WITH TAB 各字段由制表符 (TAB) 来分隔,而非逗号。 DELIMITED WITH CHARACTER Delimiter 字段之间由给定的 Delimiter 分隔。如果 Delimite 是分号,应用引号括起来,因为引号在 Visual FoxPro 中有特殊的意义:一个命令分在多行中书写时,用分号
全部回答
create table mytable (公告号 c(6),公告日 c(11),申请人 c(20)) append from mytxt.txt delimited with space(1) 从一个文件中读入记录,追加到当前表的尾部。 append from filename | ? [fields fieldlist] [for lexpression] [[type] [delimited [with delimiter | with blank | with tab | with character delimiter] | dif | fw2 | mod | pdox | rpd | sdf | sylk | wk1 | wk3 | wks | wr1 | wrk | csv | xls | xl5 [sheet csheetname] | xl8 [sheet csheetname]]] [as ncodepage] 参数 filename 指定从哪个文件中读入记录。如果给出的文件名不包含扩展名,则将文件默认为 visual foxpro 表,扩展名为 .dbf。如果文件是 visual foxpro 表,无论set deleted 为何种设置,表中标记为删除的记录也将添加到当前表中。 ? 显示打开对话框,从中可以选择从哪个表中读入记录。 fields fieldlist 指定添加哪些字段数据。 for lexpression 为当前选定表中每一条 lexpression 为“真”(.t.) 的记录追加新记录,直至达到当前选定表的末尾。如果省略 for,则整个源文件记录都追加到当前表中。 type 指定源文件类型。如果指定的源文件类型不是 visual foxpro 表,则必须指定文件类型,但不必包括 type 关键字。您可以从各种类型文件(包括分隔 ascii 文本文件)中读入信息添加到表中,在这些文件中可以指定字段分隔符。 如果要追加的源文件扩展名不是默认的扩展名,源文件名必须包括文件扩展名。例如,microsoft excel 工作表通常具有 .xls 扩展名。如果要追加的 microsoft excel 工作表扩展名不是 .xls,一定要指定扩展名。 注意 如果要追加的记录来自工作表,工作表中的数据必须以主行序而非主列序存储,这样才能使追加的工作表数据符合表结构。 delimited 指定源文件为分隔数据文件。分隔数据文件是 ascii 文本文件,文件中每条记录以回车和换行符结尾。各字段内容默认地由逗号分开,字符字段值还需要用引号括上。例如: "smith",9999999,"telephone" 所有分隔数据文件的扩展名默认为 .txt 数据的格式。 如果日期格式正确,可以从分隔文件中导入日期数据,日期的默认格式为 mm/dd/yy。您还可以选择加入世纪信息。visual foxpro 导入的数据(如 12/25/95)不包含世纪信息,世纪信息的默认值为 20 世纪。日期分隔符可以为任意非数值字符,但不能使用分隔文件中字段的分隔符。 如果其他一些日期格式与 set date 中可以使用的格式相匹配,visual foxpro 也可以导入这些格式的日期数据。若要导入非默认格式的日期,应在使用 append from 前先发出 set date 修改数据格式设置。要想检查日期格式是否能成功地导入,可使用ctod()函数。如果 ctod()函数接收此日期值,则日期数据就能正确地导入。 delimited with delimiter 字符字段由 delimiter 标识,而非引号。 delimited with blank 由空格符 (blank) 分隔字段,而不是用逗号分隔字段。 delimited with tab 各字段由制表符 (tab) 来分隔,而非逗号。 delimited with character delimiter 字段之间由给定的 delimiter 分隔。如果 delimite 是分号,应用引号括起来,因为引号在 visual foxpro 中有特殊的意义:一个命令分在多行中书写时,用分号作为行的结束。delimiter 可以是 blank 或 tab 。 with delimiter 子句可与 with character 子句同时使用。例如,在下面的例子中,添加记录的来源是一个文本文件。该文本文件中,字符字段用下划线 _ 标识,而字段之间用星号 * 分隔: append from mytxt.txt delimited with _ ; with character * dif 选用 dif 可从 visicalc .dif(数据交换格式)文件中导入数据。矢量(列)对应当前选定表的字段,元组(行)对应表的记录。dif 文件的默认扩展名为 .dif。 fw2 选用 fw2 可从由 framework ii 创建的文件中导入数据。fw2 文件的默认扩展名为 .fw2。 mod 选用 mod 可从microsoft multiplan 4.01 版本的文件中导入数据。mod 文件由 microsoft multiplan 4.01 版本创建,默认扩展名为 .mod。 pdox 选用 pdox 可从 paradox 3.5 版或 4.0 版数据库文件中导入数据。paradox 文件名的默认扩展名为 .db。 rpd 选用 rpd 可从由 rapidfile 1.2 版本创建的文件中导入数据。rapidfile 文件名的默认扩展名为 .rpd。 sdf 选用 sdf 可从系统数据格式文件中导入数据。sdf 文件是一种 ascii 文本文件,记录有固定长度,并且以回车和换行符结尾,各字段不分隔开。文件的默认扩展名为 .txt。 从 sdf 文件到 visual foxpro 表时的有效的日期转换要求数据保存为 yyyymmdd 格式。 如果日期格式保存为不明确的格式, 你应该映射日期列到一个适当宽度的字符列这样你可以检查转换后的值来改正转换程序以创建正确格式的日期数据。 sylk 选用 sylk 可从 sylk(符号链接)交换格式文件中导入数据。sylk 文件用于 microsoft multiplan 中。sylk 文件中的列对应 visual foxpro 表的字段,行对应表的记录。sylk 文件没有扩展名。 wk1 选用 wk1 可从 lotus 1-2-3 2.x 版本的电子表格中导入数据。电子表格的每列为表的一个字段,每行为表的一条记录。lotus 1-2-3 2.x 版本创建的电子表格扩展名为 wk1。 wk3 选用 wk3 可从 lotus1-2-3 的电子表格中导入数据,电子表格的每列为表的一个字段,每行为表的一条记录。lotus1-2-3 版本 3.x 创建的电子表格扩展名为 .wk3。 wks 选用 wks 可从 lotus1-2-3 1-a 版的电子表格中导入数据。电子表格的每列为表的一个字段,每行为表的一条记录。lotus1-2-3 1-a 版本创建的文件扩展名为 .wks。 wr1 选用 wr1 可从 lotus symphony 1.1 或 1.2 版的电子表格中导入数据。电子表格的每列为表的一个字段,每行为表的一条记录。symphony1.1 或 1.2 版创建的电子表格扩展名为 .wr1。 wrk 选用 wrk 可从 lotus symphony 1.0 版的电子表格中导入数据。电子表格中的每列为表的一个字段,每行为表的一条记录。symphony 1.0 版创建的电子表格扩展名为 .wrk。 csv 选用 cvs 可从一个各值用逗号分隔的文件中导入数据。一个 csv 文件的第一行是字段名;当导入该文件时,会忽略这个字段名。 xls 选用 xls 可从 microsoft excel 工作表中导入数据。工作表的每列为表的一个字段,每行为表的一条记录。由 microsoft excel 创建的工作表扩展名为 .xls。 xl5 选用 xl5 可从 microsoft excel 5.0 版中导入数据。工作表的每列为表的一个字段,每行为表的一条记录。工作表文件的扩展名为 .xls。 如果省略 sheet 子句,会导入 sheet1 中的数据。为了导入特定工作表中的数据,需要包含 sheet 关键字,并且使用 csheetname 指定工作表的名称。 xl8 包含 xl8 快导入 microsoft excel 97 的数据。工作表的列变成表中的字段;工作表的行变成表中的记录。在 microsoft excel 中创建的工作表文件的扩展名是 .xls。 如果省略 sheet 子句,会导入 sheet1 中的数据。为了导入特定工作表中的数据,需要包含 sheet 关键字,并且使用 csheetname 指定工作表的名称。 as ncodepage 指定源表或源文件的代码页。visual foxpro 将复制源表或源文件的内容,并在复制时自动把数据转换到当前表的代码页中。 如果指定的 ncodepage 值无法使用,visual foxpro 将产生一条错误信息。您可以用getcp()函数显示代码页对话框,在对话框中可以为追加的表或文件指定代码页。如果省略 as ncodepage 子句,并且 visual foxpro 不能判定源表或文件的代码页,visual foxpro 将复制源表或文件内容,并在复制数据的过程中,自动将数据转换到当前的 visual foxpro 代码页中。如果 set cpdialog 为 on,当前选定工作区中的表以代码页标记。如果要从没有代码页标记的表中读入数据并添加到表中时,将显示代码页对话框,您可以在其中选择表的代码页。当前的 visual foxpro 代码页可以由cpcurrent()函数设定。 如果省略 as ncodepage 子句,并且 visual foxpro 可以确定追加记录的表或文件的代码页,visual foxpro 将复制表或文件的内容,并在复制数据的过程中,自动将数据转换到当前选定表的代码页中。 如果 ncodepage 为零,visual foxpro 认为需追加记录的表和文件的代码页与当前选定表的代码页相同,并且不进行代码页的转换。 备注 如果从其中追加数据的文件是 visual foxpro 表或在 foxpro 早期版本中创建的表,其扩展名为 .dbf。如果其扩展名不是 .dbf,您必须指定扩展名。如果文件不是 visual foxpro 表或 foxpro 早期版本创建的表,还必须指定文件的类型。 在从 dbase iv 或 dbase v 创建的包含备注字段的表中追加记录前,您必须先用use 命令在 visual foxpro 中打开此表,当提示信息询问您是否要转换文件时,请选择“是”。 如果从 foxpro 早期版本的表或 visual foxpro 表中读入记录,此表可以在另一工作区打开。对于源表中有删除标记的记录,一旦添加到表中,将会去掉删除标记。 使用 dbf()函数可以从一个只读的临时表追加数据,该临时表是使用 select - sql命令创建的。可象下例这样在 dbf()函数中包含临时表的名称: append from dbf('<临时表名>') 如果目标表使用了 autoincrementing, 当 autoincerror 设置为 on 时 append from 会失败, 除非 fields 选项中缺省了 autoinc 列。设置 autoincerror 为 off 或用 cursorsetprop() 关闭 autoincrementing 允许成功地 append from。目标表的 autoincrementing 字段或按指定值递增的字段, 和源表中的值不适用。 示例 以下示例用于打开表 customer,将其结构复制到表 backup 中,并且打开表 backup。然后 visual foxpro 将 customer 表中满足 'finland' 的记录追加到表 backup 中。这些记录然后又被复制到一个新的分隔文件 temp.txt 中。 close databases open database (home(2) + 'data\testdata') use customer && 打开 customer 表 copy structure to backup use backup append from customer for country = 'finland' copy to temp type delimited modify file temp.txt use delete file backup.dbf delete file temp.txt
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么美图手机酷狗音乐下载不了本地铃声呢
祥发百货在哪里啊,我有事要去这个地方
《饥荒》海难修改文件怎么使用mod
长城宽带(中兴南路中国建设银行旁)地址在什么
求教,拉斯维加斯该怎么去
正式调剂之前填写各个学校的调剂系统没事吧
求大师算农历1981年12月13日早六点出生的男性
上联:网游遨游笑天下 求下联
我和男朋友分手后结果第二天就对别的女人说喜
双江布艺家纺地址在什么地方,想过去办事
那玫琳凯算不算大品牌了?
纯棉与莫奈尔的区别
本人今天定了一台空调。我看了网上的评论,说
离心力,向心力,重力的关系?(例如:水平转
西红门邮政所地址有知道的么?有点事想过去
推荐资讯
男友出差中,梦见他死了,帮忙解.
俄语 达拉嘎亚什么意思
对于分子动理论和物体内能理解,下列说法正确
三星的蓝牙耳机长按开机键开不了机,但是充电
军迷妹繁体字
新世界百货东北门这个地址在什么地方,我要处
曹妃甸产石油么?
40cmX40cm是多大的纸。是A 几?
光大水墨风景西门(人行门)怎么去啊,有知道地
为什么玩地下城,打团组人的时候就卡。
卵巢早衰是否就一定不能生育了
定积分求面积请问什么情况下需要分段算
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?