请问:怎样把txt文件里的多行内容分别读到dbgrid或者stringgrid的对应的行里面? ( 积分: 200 )

  • 主题发起人 主题发起人 noheart476
  • 开始时间 开始时间
N

noheart476

Unregistered / Unconfirmed
GUEST, unregistred user!
我的代码是这样的,但只能读一行
procedure TForm1.Button3Click(Sender: TObject);
var
//i : Integer;
F: TextFile;
S: string;


begin
AssignFile(F, 'D://123.txt');
Reset(F);

readln(F, S);
Edit1.Text := S;

stringgrid1.Cells[1,1]:=s;

CloseFile(F);

end;
 
我的代码是这样的,但只能读一行
procedure TForm1.Button3Click(Sender: TObject);
var
//i : Integer;
F: TextFile;
S: string;


begin
AssignFile(F, 'D://123.txt');
Reset(F);

readln(F, S);
Edit1.Text := S;

stringgrid1.Cells[1,1]:=s;

CloseFile(F);

end;
 
txt里的格式是这样的
条码
2323232323232
3434343434343
3443434343434
 
看得出,楼主还是个肯动手的人,唉,这样的人现下在论坛上就越来越少了。
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 TForm1.Button1Click(Sender: TObject);
var
s1,s2:TStrings;
i:integer;
begin
s1:=TStringList.Create ;
s2:=TStringList.Create ;
s1.loadfromFile('d:/temp.txt');
for i:=0 to s1.count- 1 do
begin
s2.CommaText:=s1;
showmessage(format('第%d行有%d个数据,如下:'#10'%s',[i+1,s2.count,s2.Text]));
///用 s2[j] 来取各个数据
end;
s1.free;
s2.free;

end;
 
我的做法是读入到 memo 中来处理
 
assignfile(f,opendialog1.filename);
reset(f);
readln(f,s);
while not(s='') do
begin
.....
readln(f,s);
end;
closefile(f);
 
memo 我也做过了,是这么写的,
Memo1.Lines.LoadFromFile('d:/123.txt');
for i:=0 to Memo1.Lines.Count-1 Do
begin
stringgrid1.cell[1,1]:=Memo1.Lines;
End;
大家也看出来了,其实我是不会赋值给sringgrid。
现在看了大家的代码我会了!
不好意思的是,我是第一次提问题,当初给分的时候我就选了个最大的,没想到原来分是自己有多少才能分多少,对不起大家!我现在有20分,全部拿出来!
这里真好!
 
如果是dbgrid呢?
dbgrid1.filed[0].text:=?
 
dbgrid是数据绑定控件,是不能直接赋值的
 
你那样做只读取一行,文件指针没有继续移动。readln会自动移动文件指针下移的。循环读取就没有问题了,eof判断结尾

while not eof(f) do begin
……
readln()
//添加到StringGrid里面,注意设置它的Cell数量等,TMemo有64K的限制,
……
end;

DBGrid需要数据集,麻烦点,就用StringGrid
 
memo中只能读300行
 

Similar threads

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