注册 登录
编程论坛 VFP论坛

TXT转换为DBF后续问题

zq5d 发布于 2020-02-25 15:48, 2632 次点击
我把一个WORD题库转换
只有本站会员才能查看附件,请 登录
为TXT文档后,打开一张之前使用的数据表,使用append from 1.txt type sdf后,所有的内容都堆齐在一个字段内,请教下如何把其中某些内容放到其它字段。
比如我txt导入后试卷就在A字段(每行分别有题目,有选项A,B,C,D,E,F和答案),要怎么把题目,选项A,选项B,分别放到其它字段中。

[此贴子已经被作者于2020-2-25 22:56编辑过]

12 回复
#2
schtg2020-02-25 17:48
已经在一个字段中,可以再分哈。
发上来,或私发可以帮忙试一下哈

[此贴子已经被作者于2020-2-25 17:49编辑过]

#3
吹水佬2020-02-25 18:46
看似要解释一段文本写入一个记录
#4
xuminxz2020-02-25 19:36
如果能保证每题行数一样可以根据MOD(recn(),9)的值,将题目、选项、要点、答案分别写到另一个表的不同字段,当MOD(recn(),9)=1时增加一条记录
也可建立一个表,把试卷放入备注字段。
wd表Bz字段为试卷
select tk
for i=1 to MEMLINES(bz)
    nr=MLINE(wd.bz,i)
    do case
    case nr='【'
    APPEND BLANK
    repl tm with nr
    case nr='A、'
    repl xxA with nr
    case nr='B'
    repl xxBwith nr
    case nr='C
    repl xxC with nr
    case nr='D、'
    repl xxD with nr
    case nr='知识要点'
    repl zsyd with nr
    case nr='---'
    repl laiy with nr
    endcase
endfor

[此贴子已经被作者于2020-2-25 19:50编辑过]

#5
瓜瓜19902020-02-25 21:02
回复 4楼 xuminxz
#6
zq5d2020-02-25 21:20
回复 2楼 schtg
只有本站会员才能查看附件,请 登录
这是附件。
#7
zq5d2020-02-25 21:31
回复 4楼 xuminxz
运行后,感觉没反应。
只有本站会员才能查看附件,请 登录
这是附件,麻烦帮忙分析下,谢谢
#8
sdta2020-02-25 21:41
请教下如何把其中某些内容放到其它字段
要把问题说清楚,不要让大家猜谜
#9
schtg2020-02-26 11:21
回复 6楼 zq5d
转换比较麻烦,看一下对否?
只有本站会员才能查看附件,请 登录



[此贴子已经被作者于2020-2-26 11:55编辑过]

#10
xuminxz2020-02-26 11:44
程序代码:

*xa,……xi选项,现最多117字符,tmcc 出处,现最多74字符 tmyd要点 tmnr题目内容最大超过254只能用备注字段。
CLOSE TABLES all
CREATE CURSOR tmp (t m)
APPEND BLANK
APPEND MEMO t FROM 1.txt
hs=MEMLINES(t)

 
SET MEMOWIDTH TO 150
CREATE TABLE tk (tmnr m,xa c(150),xb c(150),xc c(150),xd c(150),xe c(150),xf c(150),xg c(150),xh c(150),xi c(150),xj c(150),tmcc c(100),tmyd m,tmlx c(8),tmxh i,daan c(10))
FOR i=1 TO hs
    bz=LEFTc(MLINE(tmp.t,i),20)
    DO CASE
    CASE bz='【第'
    APPEND blank
    REPLACE tmnr WITH SUBSTR(MLINE(tmp.t,i),AT('',bz)+2),tmxh WITH VAL(SUBSTR(bz,5)),tmlx WITH SUBSTR(bz,AT('-',bz)+1,4)
    CASE BETWEEN(ASC(LEFT(bz,1)),65,75)
    zdmc='x'+LEFT(bz,1)
    REPLACE &zdmc WITH SUBSTR(MLINE(tmp.t,i),4)
    CASE bz='知识要点:'
    REPLACE tmyd WITH SUBSTR(MLINE(tmp.t,i),11)
    CASE bz='——'
    REPLACE tmcc WITH SUBSTR(MLINE(tmp.t,i),5)
    CASE bz='答案:'
    REPLACE daan WITH SUBSTR(MLINE(tmp.t,i),7)
    ENDCASE
ENDFOR




[此贴子已经被作者于2020-2-26 11:46编辑过]

#11
schtg2020-02-26 11:57
回复 10楼 xuminxz
好!
#12
zq5d2020-02-26 16:28
回复 9楼 schtg
是的,太优秀了。可以贴出源码吗
#13
zq5d2020-02-26 16:49
回复 10楼 xuminxz
谢谢。可以了
1