如何将文本文件导入到数据库中?在线等待(60分)

  • 主题发起人 主题发起人 yyy_as
  • 开始时间 开始时间
Y

yyy_as

Unregistered / Unconfirmed
GUEST, unregistred user!
各位delphi老师,如何打开文本文件?如何访问文本文件?如何获得文本文件内容导入到
数据库,最好有代码提示,本人是出学者。谢谢!
 
为何没有人知道呢?,是问题太难了吗?真实不可思意。
 
文本文件的格式很多啊!
把格式告我们啊!
 
文本文件的格式是:
奖排榜
num coun jin yin tong
1 中国 50 45 90
2 日本 40 30 90
3 aa bb cc dd
字段与字段之间都用tab键或,分开。
我用的数据库是本地数据库:access,我觉得其他数据库方法是一样的。

 
不好办啊!
为什么是tab不是空格啊
 
随便找一本书就有
比如说那个清华的<<Delphi入门与提高>>
跟不用说:<<Delphi开发人员指南>>了.
 
查一下以前的贴子,很多的
 
你还是看一下textfile的帮助吧,自己摸索好。
 
字段之间用空格如何做?以前的帖子我都看过了,没有找到。我现在拥有的书中没有这
方面的例子。请各位老师帮帮忙吧,谢谢!
 
摘 要:将DBGrid中的数据导入Excel表格中
关键字:Excel
类 别:数据库


CoDelphi.com版权所有,未经允许,不得进行任何形式转载


写数据库程序时,通常希望把DBGrid列表中的数据导入excel表格,以下通过在数据模块中写一个共用过程,在任何地方需要时进行调用即可:

const { XlWBATemplate } xlWBATChart = -4109; xlWBATExcel4IntlMacroSheet = 4; xlWBATExcel4MacroSheet = 3; xlWBATWorksheet = -4167;procedure Tsysdb.SaveToExcel(Db_data:TDBGrid);var XlAPP:Variant; excelcount:integer; Sheet1:Variant; i,j:integer;begin if not Db_data.DataSource.DataSet.Active then exit; if Db_data.DataSource.DataSet.RecordCount<1 then exit; //创建excel对象 try XlApp:=createoleobject('Excel.Application'); XLApp.Visible:=false; excelcount:=XLApp.Workbooks.count; XLApp.Workbooks.Add(xlWBatWorkSheet); Sheet1 := XLApp.Workbooks[1].WorkSheets['sheet1']; except showmessage('你的电脑没出息有安装excel程序,无法完成此功能!'); exit; end; //setfocus;处理标题 for j:=0 to Db_data.FieldCount-1 do begin sheet1.cells[1,j+1]:=Db_data.Columns[j].Title.Caption; end; //处理记录 Db_data.DataSource.DataSet.First; i:=2; while not Db_data.DataSource.DataSet.Eof do begin //处理一行 for j:=0 to Db_data.FieldCount-1 do begin if Db_data.Fields[j]<>nil then Sheet1.cells[i,j+1]:=trim(Db_data.Fields[j].asstring) else Sheet1.cells[i,j+1]:=''; end; i:=i+1; Db_data.DataSource.DataSet.Next; end; XLApp.Visible:=true;end;



[red][/red]
写入文本文件与其相同
 
帮助都是英文,本人水平英文有限。
 
为何没有对文本文件访问的代码?我到哪里可以获得?
 
如果你用ADO的话在建立与数据库连接的时候,你是会先选择数据库引擎的,在很多数据库
引擎中有一个引擎你注意到了吗?TEXT数据库引擎,通过它你就可以对TXT文件进行操作!
前提是你的格式能让它识别!
 
ODBC中有text的数据库引擎,ADO中没有,我在vb中实现,是不用数据库引擎的,delphi
到底如何实现?我现在怎么还是不明白呀?哪位好心人指点一下,我在这里多谢了。
 
为什么我的机器里有啊?????
 
如果是ORACLE有SQLLOADER
 
有没有编写的代码,让我借鉴一下。
 
我想用下面的思想实现:但存在许多问题,各位老师能帮我看一下吗?
procedure TfrmImport.Button1Click(Sender: TObject);
var
AppPath,filename,AA:String;
astr:array[0..4] of string;
f1:TextFile;
i,ii,iii:integer;

begin
OpenDialog.Filter:='*.txt';
OpenDialog.InitialDir:=AppPath + 'Export/TXT/';
if OpenDialog.Execute=false then exit;
filename:=OpenDialog.FileName;
{´ò¿ªÖ¸¶¨Îļþ}
AssignFile(f1,filename);
ReSet(f1);
repeat
begin
AA:=readln(f1);
i:= 1;
iii:= 1;
ii:= 1;
repeat
begin
i := pos(i + 1, AA, Chr(9));
If i=0 Then astr[ii]:= copy(AA,iii)
Else astr[ii] := copy(AA, iii, i - iii);
iii := i;
ii := ii + 1;
end;
until i = 0
with TADOCommand.Create(self) do try
connection:=frmDM.ADOConn;
commnadtext:='insert into total1(num,coun,jin,yin,tong) values' +
' (:num,:coun,:jin,:yin,:tong)';
parameters.ParamByName('num').Value:=Replace(Trim(astr(0)), Chr(9), '');
parameters.ParamByName('coun').Value:=Replace(Trim(astr(1)), Chr(9), '');
parameters.ParamByName('jin').Value:=Replace(Trim(astr(2)), Chr(9), '');
parameters.ParamByName('yin').Value:=Replace(Trim(astr(3)), Chr(9), '');
parameters.ParamByName('tong').Value:=Replace(Trim(astr(4)), Chr(9), '');
execute;
finally
free;
end;
end;
until eof(f1);
end;
 
to yyy_as
刚才我试了一下,应该可以,把你的邮箱告我,我给你发个例子。
 
to yyy_as
我的邮箱为nibul@sina.com,你能给我发几个存有数据的文件吗?让我测试一下!
 
后退
顶部