TXT倒入ACCESS数据库(100分)

  • 主题发起人 主题发起人 RSC00
  • 开始时间 开始时间
R

RSC00

Unregistered / Unconfirmed
GUEST, unregistred user!
1、TXT文档字段以空格隔断,但空格数量不定。
2、TXT多行数据,但每行数据列数不定,一般为3或4列
3、ACCESS数据库定义好了表和数据列数(最大列数4列)
搞了半天,实在不知道怎么弄了~!
TXT文本如下例:
1/5 张三 1000
1/10 李四(大)
1/20 王五
 
用这样的方法来读取TXT每一行的信息,你去试试看行得通不。

var
field_value,str:string;
begin
str:=trimleft(str);
while( pos(str,' ')<>0)
begin
field_value:=copy(str,0,pos(str,' '));
output>>filed_value;
str:=copy(str,length(filed_value),length(str));
str:=trimleft(str);
end;
str:=trimleft(str);
if str<>'' then
begin
field_value:=str;
output>>filed_value;
end;
end;
 
无法返回POS值
所以不成立
不能用阿
 
文本文件如果想用ADOQUERY来显示出来,必须要用SCHEMA.INI文件,逗号分隔的不用这个文件,其他分隔符的必须要这个文件才行。

你可以先把多个空格替换成一个空格,
 
不好意思。POS被我寫錯了。

pos(' ',str)<>0 子串應該是在前面。。
 
已经解决了
var
txtfile:textfile;
str,fl:string;
i:Integer;
begin
Readln(txtfile,str) ;
str:=trimleft(str);
form1.ADOQuery1.Append;
form1.ADOQuery1.Edit;
for i:=1 to Length(str) do
if (str=' ') and (str[i-1]<>' ') then
begin
form1.ADOQuery1.FieldByName(fl).Value:=trimleft(S1);
end;
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
835
SUNSTONE的Delphi笔记
S
S
回复
0
查看
765
SUNSTONE的Delphi笔记
S
S
回复
0
查看
730
SUNSTONE的Delphi笔记
S
后退
顶部