Txt中的文件转换到的DBGrid中控件中(ClientDataSet1中)(50)

  • 主题发起人 主题发起人 sorbety
  • 开始时间 开始时间
S

sorbety

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将TXT文本的数据读取到DBGrid中啊就是将TXT文件读取到ClientDataSet1中有的给重分啊[red][/red]我现在做了一个程序,将TXT日志文件转换为XML文件,就是不知道如何将TXT文本的数据读取到DBGrid中,有知道的帮我啊,万分感谢
 
看看能帮你没有,这是我从前辈app2001那儿学来的。procedure TForm1.Button3Click(Sender: TObject);
var i, j : Integer;
F : TextFile;
S : string;
begin
AssignFile(F, 'D:/123.txt');
i := 1;
j := 1;
Reset(F);
try while not eof(f)do
begin
application.ProcessMessages readln(F, S);
Edit1.Text := S;
stringgrid1.Cells[i, j] := s;
inc(j);
end;
except CloseFile(F);
end;
end;
 
关键是日志文件我需要的一行一行的数据被读取,
 
而且是一行的数据中也要分部分读取到各个字段中,万分感谢啊 等结题了一定给你加分
 
日志的文件每行数据每个关键字段间都有空格,
 
procedure ....var VLogfile:TstringList;
// 文件读入此 StringList中 LinStr:Tstrings;
// 用于拆分每一行的临时变量 i,k:integer;
begin
VLogfile:=TstringList.Create;
LinStr:=TstringList.Create;
VProfile.LoadFromFile('D:/Log001.txt');
for i:=0 to VLogfile.Count-1do
begin
LinStr.Clear;
ExtractStrings([';',',',':','|',' '],['@',' '],PChar(VLogfile.Strings),LinStr);
if stringgrid1.RowCount<i+1 then
//添加行 stringgrid1.RowCount:=i+1;
stringgrid1.Row:=LinStr;
//整行赋值 end;
end;
 
我刚才调试你的代码 怎么在readln(F, S);
不能过啊提示 missing operator or semicolon
 
stringgrid1,可是我用的Dbgrid啊
 
stringgrid1.Row:=LinStr;
调试不过说ROWARRAY TYPE REQUEIERD
 
type Row=array[1..200]of Tstrings;
我这样定义了数组 可是还报错 array type required
 
var VLogfile,VProfile:TstringList;
// 文件读入此 StringList中 LinStr:Tstrings;
// 用于拆分每一行的临时变量 i,k:integer;
type Row=array[1..200]of Tstrings;
begin
VLogfile:=TstringList.Create;
LinStr:=TstringList.Create;
VProfile.LoadFromFile('D:/123.txt');
for i:=0 to VLogfile.Count-1do
begin
LinStr.Clear;
ExtractStrings([';',',',':','|',' '],['@',' '],PChar(VLogfile.Strings),LinStr);
if stringgrid1.RowCount<i+1 then
//添加行 stringgrid1.RowCount:=i+1;
stringgrid1.Row:=LinStr;
//整行赋值 end;
end;
还是 stringgrid1.Row:=LinStr;
//整行赋值 出现array type required
 
stringgrid1.Row:=LinStr;
//整行赋值改为:stringgrid1.Rows:=LinStr;
//整行赋值不好意思,笔误还要记得释放啊 VLogfile.Destroy;
LinStr.Destroy;呵呵
 
VProfile.LoadFromFile('D:/Log001.txt');运行的时候总是在这一行报错,过不去啊
 
老弟啊,变量写错了,你就自己调试一下吧,VProfile.LoadFromFile('D:/Log001.txt');改成VLogfile.LoadFromFile('D:/Log001.txt');
 
多人接受答案了。
 
后退
顶部