delphi txt文本读取内容到不同edit
一个txt文件内容是1,ABC,DEF,GHI2,JKL,MNO,PQR3,ST,UV,WX,YZ4,。。。。。希望获得效果:1.combobox中显示3个项目:1,2,...
一个txt文件内容是
1,ABC,DEF,GHI
2,JKL,MNO,PQR
3,ST,UV,WX,YZ
4,。。。。。
希望获得效果:1.combobox中显示3个项目:1,2,3;
2.combobox选中1时,edit1内容为ABC,edit2内容为DEF,edit3内容为GHI
3.combobox选中2时,edit1内容为JKL,edit2内容为MNO,edit3内容为PQR
4.选中3时也依此类推。。。。。
请大神帮助。。 展开
1,ABC,DEF,GHI
2,JKL,MNO,PQR
3,ST,UV,WX,YZ
4,。。。。。
希望获得效果:1.combobox中显示3个项目:1,2,3;
2.combobox选中1时,edit1内容为ABC,edit2内容为DEF,edit3内容为GHI
3.combobox选中2时,edit1内容为JKL,edit2内容为MNO,edit3内容为PQR
4.选中3时也依此类推。。。。。
请大神帮助。。 展开
1个回答
展开全部
这个也不难吧
先给一个分割函数
TUserArray = array of string;
function Split(s: string; dot: char): TUserArray; //按分隔符分割字符串
var
str: Tuserarray;
i, j: integer;
begin
i := 1;
j := 0;
SetLength(str, 255);
while Pos(dot, s) > 0 do //Pos返回子串在父串中第一次出现的位置.
begin
str[j] := copy(s, i, pos(dot, s) - i);
i := pos(dot, s) + 1;
s[i - 1] := chr(ord(dot) + 1);
j := j + 1;
end;
str[j] := copy(s, i, strlen(pchar(s)) - i + 1);
result := str;
setLength(str, 0);
end;
设置一个Tstringlist
var
t1:Tstringlist
t1:=Tstringlist.Create;
t1.LoadFromFile('C:\aaaa.txt');
这样的话 TXT的每行数据 都在T1里 第一行t1[0] 就是1,ABC,DEF,GHI
假如你选中的数字是X
var
ua:Tuserarray;
for i:=0 to Length(t1)-1 do //遍历每一行数据
begin
us:=Split(t1[i],',');// 根据分隔符分割
if strtoint(us[0])=X then //假如第一位的数字是X 那就是这行数据了
begin
edit1.text:=us[1];
edit2.text:=us[2];
edit3.text:=us[3];
break;
end;
end;
先给一个分割函数
TUserArray = array of string;
function Split(s: string; dot: char): TUserArray; //按分隔符分割字符串
var
str: Tuserarray;
i, j: integer;
begin
i := 1;
j := 0;
SetLength(str, 255);
while Pos(dot, s) > 0 do //Pos返回子串在父串中第一次出现的位置.
begin
str[j] := copy(s, i, pos(dot, s) - i);
i := pos(dot, s) + 1;
s[i - 1] := chr(ord(dot) + 1);
j := j + 1;
end;
str[j] := copy(s, i, strlen(pchar(s)) - i + 1);
result := str;
setLength(str, 0);
end;
设置一个Tstringlist
var
t1:Tstringlist
t1:=Tstringlist.Create;
t1.LoadFromFile('C:\aaaa.txt');
这样的话 TXT的每行数据 都在T1里 第一行t1[0] 就是1,ABC,DEF,GHI
假如你选中的数字是X
var
ua:Tuserarray;
for i:=0 to Length(t1)-1 do //遍历每一行数据
begin
us:=Split(t1[i],',');// 根据分隔符分割
if strtoint(us[0])=X then //假如第一位的数字是X 那就是这行数据了
begin
edit1.text:=us[1];
edit2.text:=us[2];
edit3.text:=us[3];
break;
end;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询