回 帖 发 新 帖 刷新版面

主题:[讨论]求助各位大侠,有没有取分割符的函数?

问题是这样的 ,我有一个字符串例如:1;2;3;4;,有没有这样的函数可以直接将1,2,3,4取到一个数组里或者直接取出来。

回复列表 (共4个回复)

沙发

可以参考如下代码:
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

板凳

不好意刚刚代码没贴完整!

这次给个完整的函数如下:

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 楼

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 楼

我看GetSubStr函数比较符合你的要求.

我来回复

您尚未登录,请登录后再回复。点此登录或注册