Delphi 分割字符串,很长的字符串。
字符串:'$11111111111|紫荆东路111|126400|1|56|0|-1|-1||0|'+"$22222222211|紫荆东路222|126400|1|56|...
字符串:
'$11111111111|紫荆东路111|126400|1|56|0|-1|-1||0|'+
"$22222222211|紫荆东路222|126400|1|56|0|-1|-1||0|'+
"$33333333311|紫荆东路333|126400|1|56|0|-1|-1||0|'+
.....
"$99999999911|紫荆东路999|126400|1|56|0|-1|-1||0|'
然后取出字符串在 listview 中显示
编号 地址
11111111111 紫荆东路111
22222222222 紫荆东路222
33333333333 紫荆东路333
...
99999999999 紫荆东路999
$ 是一段字符开始,| 这段字符的分隔符。
求具体的代码...谢谢大神们了!!! 展开
'$11111111111|紫荆东路111|126400|1|56|0|-1|-1||0|'+
"$22222222211|紫荆东路222|126400|1|56|0|-1|-1||0|'+
"$33333333311|紫荆东路333|126400|1|56|0|-1|-1||0|'+
.....
"$99999999911|紫荆东路999|126400|1|56|0|-1|-1||0|'
然后取出字符串在 listview 中显示
编号 地址
11111111111 紫荆东路111
22222222222 紫荆东路222
33333333333 紫荆东路333
...
99999999999 紫荆东路999
$ 是一段字符开始,| 这段字符的分隔符。
求具体的代码...谢谢大神们了!!! 展开
3个回答
展开全部
先给一个字符串分割函数
type
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;
思路 你先用$ 分割成一个字符串数组
再在分割成的数组里 用|分割
arr1,arr2:TUserArray ;
i:integer;
str1,str2:string;
str1:='要分割的字符串';
arr1:=Split(str1,'$'); //函数默认是255长度 如果不够 就修改255
for i:=0 to length(arr1)-1 do
begin
str2:=arr1[i];
if str2='' then
Break;
arr2:=Split(str2,'|');
arr2[0]和 arr2[1]就是你要的结果
增加到listview 即可
end;
代码没有经过编译 思路肯定没问题
type
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;
思路 你先用$ 分割成一个字符串数组
再在分割成的数组里 用|分割
arr1,arr2:TUserArray ;
i:integer;
str1,str2:string;
str1:='要分割的字符串';
arr1:=Split(str1,'$'); //函数默认是255长度 如果不够 就修改255
for i:=0 to length(arr1)-1 do
begin
str2:=arr1[i];
if str2='' then
Break;
arr2:=Split(str2,'|');
arr2[0]和 arr2[1]就是你要的结果
增加到listview 即可
end;
代码没有经过编译 思路肯定没问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询