请问如何导入带有分界符的文本文件? (50分)

  • 主题发起人 主题发起人 lzliang
  • 开始时间 开始时间
L

lzliang

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大虾,如何用程序导入带有分界符的文本文件。
 
就用textfile一条条读入,或者用stringlist的commatext属性
 
没有听懂,什么意思?你所指的“分界符”是什么意思?
 
分界符是指用,;或空格作字段分隔。例如
将格式为:
“张三”,1970-10-01,“男”,30,2500.00
“李四”,1975-10-01,“女”,25,1500.00
文本文件导入到字段为
姓名,出生日期,性别,年龄,基本工资
的数据库中。

 
将全部非空格分界符替换为空格,再采用文本框的Items[]读入判断。
 
filestream有此功能.
 
能否详细说明!
 
if fileexists(Filepath1.FileName) then
begin
AssignFile(f, Filepath1.FileName);
Reset(f);
count:=0;
X:=1;
Y:=0;
while not Eof(f) do
begin
count:=count+1;
Readln(f, S);
S:=S + chr(44); //chr(44)为“,”;空格可用‘ ’
while not (S = '') do
begin
SI := Copy(S, 1, Pos(chr(44), S) - 1);
S := Copy(S, Pos(chr(44), S) + 1, Length(S));
if Copy(SI, 1, 1) = '#' then
begin
L:=Length(SI);
X:=StrToInt(Copy(SI, Pos('#', SI)+1, Pos(',',SI)-2));
Y:=StrToInt(Copy(SI, Pos(',', SI)+1, L - Pos(',', SI)));
end;
// if (SI <> ' ') and (SI <> '') and (Copy(SI, 1, 1) <> '#') then
if Copy(SI, 1, 1) <> '#' then
begin
StringGrid1.Cells[Y,X]:=trim(SI);
Inc(Y);
end;
end;
Y:=0;
Inc(X);
end;

CloseFile(f);
StringGrid1.RowCount:=count+1;
 
to sslljj: 不能使用此办法,除非把你的程序在完整化.特例:字符串中含有逗号,
你怎吗处理?
正规的办法:

使用bde的文本数据库的方法.
1.文本数据库必须包含两个文件:一个是数据文件*.txt,一个是计划文件*.sch,两个文件
必须同名.数据文件就是csv格式的文件,计划文件格式有些特殊要求.
2.使用tbatchmove转换文本数据库到paradox或其他数据库格式.

 
to sunstone:
能否详细说明各种文件的格式及其使用方法!最好给个例子。
 
请参考<delphi4大全>下册1246页
 
请参考下册1246页???
 
问题已经解决了谢谢各位的意见。
 
后退
顶部