标题:如何将 2021年普通高中省级三好学生名单.docx写入DBF表文件中
只看楼主
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:15 
试了一下,另存为文本,这个文件格式还算规范,可以找到数据

程序代码:
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
? "运行WORD......" 
oWord = CREATEOBJECT("Word.application")
? "打开文件......"
oWord.Documents.Open(cDefPath+"2021年普通高中省级三好学生名单.docx")
? "另存文件......"
oWord.ActiveDocument.SaveAs(cDefPath+"2021年普通高中省级三好学生名单.txt", 2)
oWord.Documents.Close
oWord.Quit
? "读取数据......"
cTXT = FILETOSTR("2021年普通高中省级三好学生名单.txt")
cTXT = RTRIM(cTXT, 0h0D,0h0A)
USE shsmd
ZAP
n = ALINES(arr, cTXT, 5, "市"+0h0D)
m = ALINES(ar, arr[1])
city = ar[m]+"市"
FOR i=2 TO n
    m = ALINES(ar, arr[i], 5, 0h0D,0hA1A1)
    FOR j=7 TO m-2 STEP 3
        INSERT INTO shsmd VALUES (ar[j],ar[j+1],city,ar[j+2])
    ENDFOR
    city = ar[m]+"市"
ENDFOR
SELECT * FROM shsmd
CLOSE DATABASES ALL 
CLEAR ALL
RETURN

2021-06-07 15:14
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
@吹水佬 非常感谢!!!
2021-06-07 15:51
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
@sdta  根据你提供的文本格式,借鉴了吹水佬版主的代码,写了下列代码,出现一点小问题,盼指点!谢谢!!!
CLOSE DATABASES all
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
USE shsmd
ZAP
cStr = FILETOSTR("三好学生名单.txt")

n = ALINES(arr, cStr, 5, "市"+0h0D)
*n = ALINES(arr, cStr, 5, "市"+CHR(13)+CHR(10))
m = ALINES(ar, arr[1])
city = ar[m]+"市"
FOR i=2 TO n
    m = ALINES(ar, arr[i], 5, CHR(13),CHR(10))
    FOR j=7 TO m-2 STEP 3
        xm=ALLTRIM(GETWORDNUM(ar[j],1,CHR(13)))
        xb=ALLTRIM(GETWORDNUM(ar[j+1],1,CHR(13)))
        xxhbj=ALLTRIM(GETWORDNUM(ar[j+2],1,CHR(13)))
        INSERT INTO shsmd VALUES (ar[j],ar[j+1],city,ar[j+2])
    ENDFOR
    city = ar[m]+"市"
ENDFOR
SELECT  shsmd
browse
2021-06-08 10:08
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 13楼 王咸美
说有问题,又不见问题,到底出现了一点什么小问题?
2021-06-08 15:43
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
@吹水佬 多谢指点!出现问题的原因已找到,原来是三好学生名单.txt中有一个学生的“所在学校和班级”内容分成了两行。

[此贴子已经被作者于2021-6-9 12:54编辑过]

2021-06-08 16:13
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
要给个“三好学生名单.txt”文件测试
另:
        xm=ALLTRIM(GETWORDNUM(ar[j],1,CHR(13)))
        xb=ALLTRIM(GETWORDNUM(ar[j+1],1,CHR(13)))
        xxhbj=ALLTRIM(GETWORDNUM(ar[j+2],1,CHR(13)))
这几行好象没什么用
2021-06-08 16:26
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
@吹水佬 谢谢指点!
xm=ALLTRIM(GETWORDNUM(ar[j],1,CHR(13)))
        xb=ALLTRIM(GETWORDNUM(ar[j+1],1,CHR(13)))
        xxhbj=ALLTRIM(GETWORDNUM(ar[j+2],1,CHR(13)))

这几行真没用

三好学生名单.txt
三好学生名单.rar (11.39 KB)


[此贴子已经被作者于2021-6-9 12:53编辑过]

2021-06-08 17:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505959-1-1.html




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

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