| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4985 人关注过本帖
标题:vfp如何读取txt文件到dbf表中
只看楼主 加入收藏
王咸美
Rank: 1
等 级:新手上路
帖 子:666
专家分:3
注 册:2018-1-4
结帖率:97.5%
收藏
已结贴  问题点数:20 回复次数:16 
vfp如何读取txt文件到dbf表中
现有文本文件0122012200.txt文件,如何读取到dbf表中,请高手指点,不胜感激。
读取txt文件.rar (609 Bytes)

0122012200.rar (297 Bytes)

错误提示.rar (174.52 KB)
搜索更多相关主题的帖子: 读取 表中 dbf txt 文件 
2020-04-20 15:47
王咸美
Rank: 1
等 级:新手上路
帖 子:666
专家分:3
注 册:2018-1-4
收藏
得分:0 
下列程序有点问题,提示“下标超界”,姓名、语文、数学、外语、综合不能读到表文件中。请高手指教,万分感谢!!!

CLOSE DATABASES
cCurrentProcedure = SYS(16,1)
nPathStart = AT(":",cCurrentProcedure)- 1
nLenOfPath = RAT("\", cCurrentProcedure) - (nPathStart)
mypath=SUBSTR(cCurrentProcedure, nPathStart, nLenofPath)
SET Default TO (mypath)


cstr=FILETOSTR("0122012200.txt")

CREATE CURSOR gkcj (考生号 c(14),姓名 c(10),报名区县 c(10),报名点 c(20),总分 n(3),语文 n(3),数学 n(3),外语 n(3),综合 n(3))

FOR i=1 TO ALINES(axx,cstr,CHR(13)+CHR(10))

    IF EMPTY(axx[i])

        LOOP

    ENDIF

    LOCAL cj[1,9]

    DO CASE

        CASE LEFT(axx[i],2)=="14"

            cj[1,1]=LEFT(axx[i],14)

            i=i+1

            cj[1,2]=SUBSTR(axx[i],2)

        CASE LEFT(axx[i],10)=="报名区县: "

            cj[1,3]=SUBSTR(axx[i],11)

        CASE LEFT(axx[i],10)=="报 名 点: "

            cj[1,4]=SUBSTR(axx[i],11)

        CASE LEFT(axx[i],4)=="总分"

            cj[1,5]=VAL(SUBSTR(axx[i],6))

            i=i+1

            cj[1,6]=VAL(SUBSTR(axx[i],6))
            
            i=i+1

            cj[1,7]=VAL(SUBSTR(axx[i],6))

            i=i+1

            cj[1,8]=VAL(SUBSTR(axx[i],6))

            i=i+1

            cj[1,9]=VAL(SUBSTR(axx[i],6))

            INSERT INTO gkcj FROM ARRAY cj

    ENDCASE

ENDFOR

BROWSE
 

[此贴子已经被作者于2020-4-20 15:54编辑过]

2020-04-20 15:52
王咸美
Rank: 1
等 级:新手上路
帖 子:666
专家分:3
注 册:2018-1-4
收藏
得分:0 
更正:
0122012200.rar (291 Bytes)
2020-04-20 16:04
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:995
专家分:4966
注 册:2013-2-16
收藏
得分:20 
参考代码:
程序代码:
CLOSE DATABASES 
cCurrentProcedure = SYS(16,1)
nPathStart = AT(":",cCurrentProcedure)- 1
nLenOfPath = RAT("\", cCurrentProcedure) - (nPathStart)
mypath=SUBSTR(cCurrentProcedure, nPathStart, nLenofPath)
SET Default TO (mypath)

cstr=FILETOSTR("0122012200.txt")

CREATE CURSOR gkcj (考生号 c(14),姓名 c(10),报名区县 c(10),报名点 c(20),总分 n(3),语文 n(3),数学 n(3),外语 n(3),综合 n(3))
* 以下内容,是我自己的逻辑.
    DIMENSION cj[1,9]
    LOCAL isEnd as Boolean
    =ALINES(axx,cstr,CHR(13)+CHR(10))
    cj = "" 
    istart =1 
    DO WHILE isEnd =.f.
        ino = ASCAN(axx,"2014年重庆市全国普通高考成绩通知单",istart)
        IF ino>0 THEN 
            istart = ino + 13
            IF istart > ALEN(axx) THEN 
                isEnd = .t.
            ENDIF  
            cj[1,1]=LEFT(axx[ino + 6],14)  && 考生号 
            cj[1,2]=SUBSTR(axx[ino + 6],16)     && 姓名 
            cj[1,3]=SUBSTR(axx[ino + 4],11)  && 报名区县 
            cj[1,4]=SUBSTR(axx[ino + 8],11)     && 报名点 
            =ALINES(axxZf, STRTRAN(axx[ino +12],":","") ,space(1))
            irow2 = 5 
            FOR irow = 1 TO ALEN(axxZf)
                IF ISDIGIT(LEFTC(axxZf[irow],1)) THEN 
                    cj[1,irow2]=axxZf[irow]  && 总分 ,语文 ,数学 ,外语,综合 
                    irow2 = irow2 + 1 
                ENDIF 
            ENDFOR 
            RELEASE axxZf 
            INSERT INTO gkcj FROM ARRAY cj
            cj = "" 
        ENDIF 
    ENDDO     


2020-04-20 17:34
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:995
专家分:4966
注 册:2013-2-16
收藏
得分:0 
最后效果:
图片附件: 游客没有浏览图片的权限,请 登录注册
2020-04-20 17:34
asdf_123000
Rank: 4
等 级:业余侠客
威 望:1
帖 子:273
专家分:227
注 册:2012-12-20
收藏
得分:0 
2020-04-20 19:03
王咸美
Rank: 1
等 级:新手上路
帖 子:666
专家分:3
注 册:2018-1-4
收藏
得分:0 
@厨师王德榜 非常感谢指点!但程序无法运行,等待时间过长,不知什么原因。
2020-04-21 07:09
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
文本文件内容太少

坚守VFP最后的阵地
2020-04-21 09:09
王咸美
Rank: 1
等 级:新手上路
帖 子:666
专家分:3
注 册:2018-1-4
收藏
得分:0 
请高手帮忙看看我发的程序如何修改,不胜感激!
2020-04-21 09:16
王咸美
Rank: 1
等 级:新手上路
帖 子:666
专家分:3
注 册:2018-1-4
收藏
得分:0 
0122012200.rar (358 Bytes)

下到程序语文、数学、外语、综合等数据在dbf表中显示不全,请高手指点

CLOSE DATABASES
cCurrentProcedure = SYS(16,1)
nPathStart = AT(":",cCurrentProcedure)- 1
nLenOfPath = RAT("\", cCurrentProcedure) - (nPathStart)
mypath=SUBSTR(cCurrentProcedure, nPathStart, nLenofPath)
SET Default TO (mypath)


cstr=FILETOSTR("0122012200.txt")

CREATE CURSOR gkcj (考生号 c(14),姓名 c(10),报名区县 c(10),报名点 c(20),总分 n(3),语文 n(3),数学 n(3),外语 n(3),综合 n(3))

FOR i=1 TO ALINES(axx,cstr,CHR(13)+CHR(10))

    IF EMPTY(axx[i])

        LOOP

    ENDIF

    LOCAL cj[1,9]

    DO CASE

        CASE LEFT(axx[i],2)=="14"

            cj[1,1]=LEFT(axx[i],14)

            i=i+1

            cj[1,2]=SUBSTR(axx[i],2)

        CASE LEFT(axx[i],10)=="报名区县: "

            cj[1,3]=SUBSTR(axx[i],11)

        CASE LEFT(axx[i],10)=="报 名 点: "

            cj[1,4]=SUBSTR(axx[i],11)

        CASE LEFT(axx[i],4)=="总分"

            cj[1,5]=VAL(SUBSTR(axx[i],6))

            

            cj[1,6]=VAL(SUBSTR(axx[i],15))
            
            

            cj[1,7]=VAL(SUBSTR(axx[i],23))

            

            cj[1,8]=VAL(SUBSTR(axx[i],31))

            

            cj[1,9]=VAL(SUBSTR(axx[i],40))

            INSERT INTO gkcj FROM ARRAY cj

    ENDCASE

ENDFOR

BROWSE
 

[此贴子已经被作者于2020-4-21 11:41编辑过]

2020-04-21 11:01
快速回复:vfp如何读取txt文件到dbf表中
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025892 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved