如何截取这样的字符串?

dlss 2001-03-08 03:03:00
一个字符串如'abc;xyz;mn',以分号为分割,如何将分号间的字符取出放在数组中.
str[0]存放'abc'
str[1]存放'xyz'
str[2]存放'mn'
...全文
144 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
broodhu 2001-03-09
  • 打赏
  • 举报
回复
楼上的说的好!用:tstringlist比较简单。
bill_lasker 2001-03-08
  • 打赏
  • 举报
回复
这种一般的编程自己动动手就OK了,基础啊
猛禽 2001-03-08
  • 打赏
  • 举报
回复
最简单的办法是:
Var
ssTemp : TStrings;
Begin
ssTemp := TStringList.Create;
ssTemp.CommaText := 'abc,xyz,mn';
ssTemp.Strings[0] // is 'abc'
ssTemp.Strings[1] // is 'xyz'
ssTemp.Free;
End;
用逗号、空格分开都可以,分号可能也可以,不行的话换成逗号嘛
WilliamGui 2001-03-08
  • 打赏
  • 举报
回复
用pos和copy两个函数就可以解决。
var
lsOriginalString:string;
laOutputString:array of string;
TempString:string;TempInteger:integer;
i:integer;
begin
lsOriginalString:='abc;xyz;mn';
i:=0;
TempString:=lsOriginalString;
TempInteger:=pos(';',TempString);
while TempInteger<>0 do begin
SetLength(laOutputString,i+1)
laOutputString[i]:=copy(TempString,1,TempInteger-1);
TempString:=copy(TempString,TempInteger+1,length(TempString));
TempInteger:=pos(';',TempString);
i:=i+1;
end;
end;
以上代码没有试过,一定有问题,不过,意思大概是这样。
tikkypeng 2001-03-08
  • 打赏
  • 举报
回复
function TForm1.GetParam(AStr:string;AToken:Char;ANum:integer):string;
var
I:integer;
offset,MaxLen:integer;
Num:integer;
begin
Num:=1;
I:=1;
offset:=1;
Result:=AStr;
MaxLen:=Length(AStr);
while offset<=MaxLen do
begin
if AStr[Offset]=AToken then //这里的阿Atoken是逗号,分号你自己去查,我没时间了!
begin
if (Num=ANum) then break;
I:=1;
Inc(Num);
end
else
begin
Result[I]:=AStr[Offset];
Inc(I);
end;
Inc(Offset);
end;
if (Num=ANum) then SetLength(Result,I-1)
else Result:='';
end;
Kingron 2001-03-08
  • 打赏
  • 举报
回复
var
buf:tstrings;
buf:=SplitString('abc;xyz;mn',';');
str[0]:=buf.strings[0];
.......

function SplitString(const source,ch:string):tstringlist;
var
temp:string;
i:integer;
begin
result:=tstringlist.Create;
temp:=source;
i:=pos(ch,source);
while i<>0 do
begin
result.Add(copy(temp,0,i-1));
delete(temp,1,i);
i:=pos(ch,temp);
end;
result.Add(temp);
end;
BCB 2001-03-08
  • 打赏
  • 举报
回复
自已编一段当然也行,要问有没有直接的办法实现串分开,
就象JavaScript中的 split()串方法:
s="abc;xyz;mn"; // JavaScript
var sarray=s.split(";") // 串拆开

5,931

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧