主题:[讨论]求助各位大侠,有没有取分割符的函数?
liuxiaoyu
[专家分:0] 发布于 2007-07-09 16:25:00
问题是这样的 ,我有一个字符串例如:1;2;3;4;,有没有这样的函数可以直接将1,2,3,4取到一个数组里或者直接取出来。
回复列表 (共4个回复)
沙发
defly [专家分:30] 发布于 2007-07-09 19:09:00
可以参考如下代码:
function SplitString(Source, Deli: string ): TStringList;var EndOfCurrentString: byte; StringList:TStringList;begin StringList:=TStringList.Create; while Pos(Deli, Source)>0 do begin EndOfCurrentString := Pos(Deli, Source); StringList.add(Copy(Source, 1, EndOfCurrentString - 1)); Source := Copy(Source, EndOfCurrentString + length(Deli), length(Source) - EndOfCurrentString); end; Result := StringList; StringList.Add(sou
板凳
defly [专家分:30] 发布于 2007-07-09 19:13:00
不好意刚刚代码没贴完整!
这次给个完整的函数如下:
function SplitString(Source, Deli: string ): TStringList;stdcall;
var
EndOfCurrentString: byte;
StringList:TStringList;
begin
StringList:=TStringList.Create;
while Pos(Deli, Source)>0 do
begin
EndOfCurrentString := Pos(Deli, Source);
StringList.add(Copy(Source, 1, EndOfCurrentString - 1));
Source := Copy(Source, EndOfCurrentString + length(Deli), length(Source) - EndOfCurrentString);
end;
Result := StringList;
StringList.Add(source);
end;
3 楼
长尾兔 [专家分:3630] 发布于 2007-07-10 09:39:00
procedure TForm1.Button1Click(Sender: TObject);
var
S : string;
SS : TStringList;
I : integer;
begin
S := '1;2;3;4';
SS := TStringList.Create;
SS.Text := StringReplace(S, ';', #10, [rfReplaceAll]);
for I := 0 to SS.Count-1 do
Showmessage(SS[I]);
SS.Free;
end;
4 楼
league [专家分:0] 发布于 2007-07-11 17:14:00
我看GetSubStr函数比较符合你的要求.
我来回复