| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2147 人关注过本帖
标题:救助:将不规则的文本文件转换成规定格式的DBF数据的问题
只看楼主 加入收藏
cxzbzgz
Rank: 8Rank: 8
来 自:云南楚雄
等 级:贵宾
威 望:24
帖 子:298
专家分:808
注 册:2012-6-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
救助:将不规则的文本文件转换成规定格式的DBF数据的问题
怎样提取一个不太规则的TXT文件里的信息到规定格式的数据表文件里的数据?
成绩.rar (13.62 KB)
搜索更多相关主题的帖子: 救助 规定 格式 DBF 数据 
2018-10-27 22:30
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:20 
程序代码:
CLOSE DATABASES 
USE 考生成绩 IN 0
ZAP 
CREATE CURSOR tt (cName C(254))
APPEND FROM 考试成绩.TXT SDF 
SELECT cName FROM tt WHERE NOT EMPTY(cName) INTO CURSOR tt
SELECT cName FROM tt WHERE INLIST(RECNO()%12, 3, 5, 6, 7, 8, 9) INTO CURSOR tt
FOR i =1 TO _Tally/6 
    COPY TO ARRAY a_6 FOR BETWEEN(RECNO(), (i - 1)*6 + 1, i*6)
    nRows = OCCURS("准考证号:",a_6[1])
    LOCAL aCj[nRows, 8]
    FOR ii = 1 TO 6
        DO CASE 
            CASE "准考证号:"$a_6[ii]
                nRows = ALINES(aName, a_6[ii], 1+4, "准考证号:", "姓名:")
                FOR iii = 1 TO nRows
                    nRow = CEILING(iii/2)
                    IF iii%2 = 1
                        aCj[nRow, 1] = aName[iii]
                    ELSE
                        aCj[nRow, 2] = aName[iii]
                    ENDIF 
                ENDFOR
            CASE "语    文"$a_6[ii]
                nRows = ALINES(aName, a_6[ii], 1+4, "语    文")
                FOR iii = 1 TO nRows
                    aCj[iii, 3] = VAL(aName[iii])
                ENDFOR
            CASE "数    学"$a_6[ii]
                nRows = ALINES(aName, a_6[ii], 1+4, "数    学")
                FOR iii = 1 TO nRows
                    aCj[iii, 4] = VAL(aName[iii])
                ENDFOR
            CASE "外    语"$a_6[ii]
                nRows = ALINES(aName, a_6[ii], 1+4, "外    语")
                FOR iii = 1 TO nRows
                    aCj[iii, 5] = VAL(aName[iii])
                ENDFOR
            CASE "综合"$a_6[ii]
                nRows = ALINES(aName, a_6[ii], 1+4, "综合")
                FOR iii = 2 TO nRows
                    aCj[iii-1, 6] = VAL(aName[iii])
                ENDFOR
            CASE "量化成绩"$a_6[ii]
                nRows = ALINES(aName, a_6[ii], 1+4, "量化成绩", "总成绩")
                FOR iii = 1 TO nRows
                    nRow = CEILING(iii/2)
                    IF iii%2 = 1
                        aCj[nRow, 7] = VAL(aName[iii])
                    ELSE
                        aCj[nRow, 8] = aName[iii]
                    ENDIF 
                ENDFOR
        ENDCASE 
    ENDFOR 
    INSERT INTO 考生成绩 FROM ARRAY aCj
ENDFOR 
SELECT 考生成绩
BROWSE 

坚守VFP最后的阵地
2018-10-28 01:11
cxzbzgz
Rank: 8Rank: 8
来 自:云南楚雄
等 级:贵宾
威 望:24
帖 子:298
专家分:808
注 册:2012-6-15
收藏
得分:0 
回复 2楼 sdta
谢谢,程序可行,运行速度快!

学习交流VFP,QQ:248561326。
2018-10-28 06:14
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:610
专家分:1784
注 册:2017-7-16
收藏
得分:0 
看了摇头!数据的来源本身存在很大问题。
估计也就是二楼的朋友回应了你啊。
2018-10-28 14:52
cxzbzgz
Rank: 8Rank: 8
来 自:云南楚雄
等 级:贵宾
威 望:24
帖 子:298
专家分:808
注 册:2012-6-15
收藏
得分:0 
以下是引用gs2536785678在2018-10-28 14:52:51的发言:

看了摇头!数据的来源本身存在很大问题。
估计也就是二楼的朋友回应了你啊。

俗话说:只有想不到,没有做不到。主要是一般人所下的功夫不到,所付出的不多,所以水平达不到。二楼的朋友所付出的功夫不是一般人所能达到的,所以水平也让一般人难望其项背。我虽然也做了一个,也勉强能达到要求,但是思路跟他的相比,却甩出几十条街。他的程序看后让人有醍醐灌顶之感,再次表示感谢!

学习交流VFP,QQ:248561326。
2018-10-28 16:57
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1730
专家分:3324
注 册:2012-2-29
收藏
得分:0 
回复 2楼 sdta
高!
2018-10-29 07:11
快速回复:救助:将不规则的文本文件转换成规定格式的DBF数据的问题
数据加载中...
 
   



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

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