回 帖 发 新 帖 刷新版面

主题:如何向数据库同时导入多个文本文件

我知道导入文本文件的命令是:append from 路径\文件名.txt delimited   但是如果同一个文件夹内有多个文本文件,如何一次导入呢?比如说在c:\vfp内有n个文本,命名格式为A1~A(i),i是不固定的,有时多有时少  谢谢各位大虾了

回复列表 (共7个回复)

沙发

先用AIR()取得A*.txt文件列表,再用FOR...ENDFOR导入

板凳

USE 数据表
n=0
FOR i=1 TO ADIR(alj,"a.*")
    DO WHILE .t. 
        n=n+1
        Afile='a.'+transform(n)   &&+".txt"
        IF FILE(afile)
            APPEND FROM &afile DELIMITED 
            EXIT 
        ENDIF
    ENDDO
NEXT

3 楼

非常感谢qjbzjp的帮助
要是有注解就好了 因为有些地方我看不懂 呵呵 菜菜的我
还有我照你的方法试了 但是好像没有反应啊??按您给的代码:

USE 数据表
n=0
FOR i=1 TO ADIR(alj,"a.*") &&这里我弄不明白什么意思,照我理解应该是*.txt才能&&返回正确的数值
    DO WHILE .t. 
        n=n+1
        Afile='a.'+transform(n)   &&+".txt"  &&这个地方也不是很明白
        IF FILE(afile)
            APPEND FROM [u]&[/u]afile DELIMITED && 那个&是什么意思啊?
            EXIT 
        ENDIF
    ENDDO
NEXT

麻烦给解答一下啊 谢谢咯

4 楼

我原来理解你的文件名为:a.1、a.2、a.3……a.n了,已经过测试无误。
如果是文件名是a1.txt、a2.txt、a3.txt……an.txt,应该改成:
USE 数据表
n=0
FOR i=1 TO ADIR(alj,"a*.txt")   &&ADIR()函数是将a*.txt文件信息放入数组中,然后返回文件的个数
    DO WHILE .t. 
        n=n+1
        Afile='a'+transform(n)+".txt"
        IF FILE(afile)
            APPEND FROM &afile DELIMITED  &&是宏代换
            EXIT 
        ENDIF
    ENDDO
NEXT
未经测试,请自己测试有没有问题。

5 楼

再次感谢qjbzjp的帮助
我按照您的方法试过了, 但是现在的问题是我把代码写在一个命令按钮上,运行后,cpu占有率突然达到100%,一直无法导入数据,没有反应,必须在任务管理器上结束才行。就算是只有一个文本也是一样,我用的是vfp9.0 还望qjbzjp
再次伸出援手啊
我把我修改的代码发给你帮看看
USE "d:\物流数据信息系统(vfp)\主数据库!main"
n=0
FOR i=1 TO ADIR(fjsj,"d:\数据\print*.*")   &&ADIR()函数是将a*.txt文件信息放入数组中,然后返回文件的个数
    DO WHILE .t. 
        n=n+1
        Afile='print'+transform(n)+".txt"
        IF FILE(afile)
            APPEND FROM &afile DELIMITED  &&是宏代换
            EXIT 
        ENDIF
    ENDDO
NEXT

6 楼

USE "d:\物流数据信息系统(vfp)\主数据库!main"
n=0
FOR i=1 TO ADIR(fjsj,"d:\数据\print*.txt")   &&ADIR()函数是将a*.txt文件信息放入数组中,然后返回文件的个数
    DO WHILE .t. 
        n=n+1
        Afile='d:\数据\print'+transform(n)+".txt"
        IF FILE(afile)
            APPEND FROM &afile DELIMITED  &&是宏代换
            EXIT 
        ENDIF
    ENDDO
NEXT
已在9。0下测试通过。

7 楼

呵呵 终于成功了 太感谢qjbzjp大大的耐心帮助了

我来回复

您尚未登录,请登录后再回复。点此登录或注册