txt(或Word)导入数据库的问题,求救于各位大侠!!!!!!!在线等,,,, ( 积分: 50 )

  • 主题发起人 主题发起人 vera_lu
  • 开始时间 开始时间
V

vera_lu

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(!][:(!][:(][8D][:D][:)][:D][8D][:(!][^][?]
我在开发学校的在线考试系统,就差最后一步批量导入试题,教师出题一般用TXT(或word)写好,然后导入数据库,在此请教导入问题.

TXT中数据格式

第一题, 新中国什么时候成立
A 1949年
B 1948年
C 1947年
D 1946年
答案:A


第二题:请说出OFFICE中含有的软件
A WORD
B EXCEL
C ACCESS
D POWERPOINT
E FRONTPAGE
答案:ABCDE


ACCESS表结构:

题号 题目 选项内容 正确答案


急求大侠,我该如何做,才能批量的将TXT这个固定的格式(大致格式不变的情况下)导入数据库中相应的字段中?????
大家能给点详细做法或代码吗? 数据库为ACCESS或SQL 2000 VFP的都可以

当然可以加入一些符号以便识别,
或是改变一下格式均可,
可以自定文本书写规则.


谢谢!
 
[:(!][:(!][:(][8D][:D][:)][:D][8D][:(!][^][?]
我在开发学校的在线考试系统,就差最后一步批量导入试题,教师出题一般用TXT(或word)写好,然后导入数据库,在此请教导入问题.

TXT中数据格式

第一题, 新中国什么时候成立
A 1949年
B 1948年
C 1947年
D 1946年
答案:A


第二题:请说出OFFICE中含有的软件
A WORD
B EXCEL
C ACCESS
D POWERPOINT
E FRONTPAGE
答案:ABCDE


ACCESS表结构:

题号 题目 选项内容 正确答案


急求大侠,我该如何做,才能批量的将TXT这个固定的格式(大致格式不变的情况下)导入数据库中相应的字段中?????
大家能给点详细做法或代码吗? 数据库为ACCESS或SQL 2000 VFP的都可以

当然可以加入一些符号以便识别,
或是改变一下格式均可,
可以自定文本书写规则.


谢谢!
 
从你的文本格式里面找方法,没固定格式没办法。。。
 
如果这个格式可以个性一下哪就很方便了。在第一行的前面加上一个标识符。
如果一定要这个格式的话,哪就难了。。。因为没办法知道你每一行的结束。比如题目。你知道什时候这题目结束吗?
 
这个问题,只要规范化老师的试题书写方法就好,然后用stringlist读进来,再逐行导入数据库。
 
格式为以下的TXT可以导入:

第一题;题目;选项内容;正确答案
第二题:题目;选项内容;正确答案
第三题:题目;选项内容;正确答案
.......
........

这样的格式: 即用分号隔开字段就可以导入ACCESS了,

但是我的试题中,选项内容里面有许多个答案,那么该如何处理格式呢?
 
txt文件肯定是要有约束的,你要给出题教师一个题目书写规则。没有规则就没有办法导入。解决了txt文件word文档就好办了。你可以通过word把它转成txt文件的。
 
当然可以人工的加上一些符号了,这是肯定的事,要不然怎么识别啊!!
问题是如何加,
加完之后如何做?
 
自己开发一个小程序吧, 从中去寻找规律,共同点, 用小程序处理。
如果导入后 字段“选项内容”怎么显示啊?显示格式是什么?
 
要自动批量导入是不行的咯,针对这个格式的Txt文件,自己写个程序吧,用程序导.判断A,B,C,D,"答案"等关键字,至于题号么,只能按序列来,而不是说老师写题号是多少就是多少了。 很繁琐的程序,潜心下来一个下午也能搞定的。
 
可以看出你数据是规则的,(废话) 所以我觉得只有写程序自己处理,因为碰到第一个非空行,就知道下面的一共6行是数据行

用一个TStringList载入文件(我想应该不大), 然后判断行是不是空行,如果不是就可以读取下面6条内容,然后继续寻找,用一个While循环
 
你是不知道如何打开文本文件导呢,还是不知道如何导入数据库,或者说你只是不知道如何设定文本中内容的排列规则????
 
因为我想单个文件数据量不大,而且有一定规律,所以采用下面的方法,因为ABCD这些东西可以不要的,所以自己转换成整形就可以了

procedure TForm1.Button1Click(Sender: TObject);
var
SL : TStringList;
nPos, nCount : Integer;
strTitle, strSn, strSubContext, strAnswer: string;
begin
SL := TStringList.Create;
sl.LoadFromFile('c:/text.txt');
nCount := SL.Count;
nPos := 0;
while nPos < nCount do begin
if Trim(SL.Strings[nPos]) <> '' then begin
strSN := Copy(Sl.Strings[nPos], 2, 1);// 标题
//strTitle := Copy( 取标题
//strSubContext := Copy(Sl.Strings[nPos + 1], 2, 1) 取A答案,根据总长度和题这个字的位置+1开始,因为我发现你上面有逗号,也后冒号
//……
//strSubContext := Copy(Sl.Strings[nPos + 4], 2, xxx) 取D答案
strAnswer := Copy(Sl.Strings[nPos + 5], 2, xxx);//取答案
// 在这里形成SQL 语句
Inc(nPos , 5);
end
else Inc(nPos);
end;
SL.Free;
end;
 
我在开发学校的在线考试系统,就差最后一步批量导入试题,教师出题一般用TXT(或word)写好,然后导入数据库,在此请教导入问题.

在我看了 你的在线考试系统 还没开始写。
地基没打 就说 楼房封顶了。
试题 格式你定义了吗? 那些体型
选择,填空,论述,上机操作(这个最难)。

你的试题格式定义了没有??
你的试题 编写器 写了没有(不要说用 txt , )
分值设计呢
 
还有 排版呢
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
550
import
I
后退
顶部