关于delphi 中读取txt文档的问题
例如,我有一个名为aaa.txt的文档,里面有二行数据,第一行:123456,第二行:789012现在我需要:edit1里读取第一行,也就是123456edit2里读取第...
例如,我有一个名为 aaa.txt 的文档,里面有二行数据,第一行:123456,第二行:789012
现在我需要: edit1里读取第一行,也就是123456
edit2里读取第二行,也就是789012
请问这样要怎么操作,不胜感激。。。 展开
现在我需要: edit1里读取第一行,也就是123456
edit2里读取第二行,也就是789012
请问这样要怎么操作,不胜感激。。。 展开
1个回答
展开全部
var
strlist: tstringlist; //声明一个tstringlist变量
begin
strlist := tstringlist.Create; //创建
strlist.LoadFromFile('aaa.txt'); //读取文档 路径自定义
edit1.text := strlist.Strings[0]; //读取第一行 赋值给edit1
edit2.text := strlist.Strings[1]; //读取第二行 赋值给edit2
strlist.Free; //释放
end;
strlist: tstringlist; //声明一个tstringlist变量
begin
strlist := tstringlist.Create; //创建
strlist.LoadFromFile('aaa.txt'); //读取文档 路径自定义
edit1.text := strlist.Strings[0]; //读取第一行 赋值给edit1
edit2.text := strlist.Strings[1]; //读取第二行 赋值给edit2
strlist.Free; //释放
end;
追问
你好,还有个问题,就是 我在下面再添加一句, Form1.edit3.text := strlist.Strings[2]; 就报错了。
好像是超出范围了,list index out of bounds(2)
这个只能读取2行,还是?
追答
报错是因为你载入的文本文档里面没有第三行了吧 你可以先看下你文本内容有多少,因为我是根据你问题中的需求表述来写的
我写了一个动态分配的方法,如果你界面上有很多个edit控件,且都是以edit1,edit2,edit3.....这种命名的,那么可以根据我下面提供的方法动态分配,这样就会根据文本文档里面内容的具体行数进行相应的赋值了,需要注意一点,form里面的edit控件必须要保证比文档内容的行数多。
procedure TForm1.LoadTxtToEdits;
var
strlist: tstringlist; //声明一个tstringlist变量
EdtComponent: TComponent;
i: integer;
begin
strlist := tstringlist.Create; //创建
strlist.LoadFromFile('aaa.txt'); //读取文档 路径自定义
i := strlist.Count; //把strlist的行数记录下来
for i := 1 to strlist.Count do
begin
EdtComponent := Form1.FindComponent('Edit' + inttostr(i)); //查询整个form里面 名为Editi的控件 i为数字
(EdtComponent as TEdit).Text := strlist.Strings[i-1]; //把第i行复制给Editi
end;
strlist.Free; //释放
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询