请教一下ExtractStrings的用法。它和VB的split函数的作用是否一样
ExtractStrings:用指定的分割符分割一个字符串为多个子字符串
给你一个例子
var
S: string;
SL: TStringList;
begin
S := 123,456,789;
SL := TStringList.Create;
ExtractStrings([,], [], PChar(S), SL);
ShowMessage(SL.Text);
SL.Free;
end;
var
iCount: Integer;
iCount := ExtractStrings([,], [], PChar(S), SL);
//or SL.Count
所以我自己写了一个函数解决:
function Split(const S: string; const Delimiter: string = ;
var sl: TStrings): Integer;
//我默认是用空格符做分隔符,那也是我自己程序的需要而已;)
var
I: Integer;
strTemp: string;
begin
Result := 0;
if (Delimiter = ) or (S = ) then Exit;
strTemp := S;
repeat
I := Pos(Delimiter, strTemp);
if I > 0 then
begin
sl.Add(Copy(strTemp, 1, I - 1));
Delete(strTemp, 1, (I + Length(Delimiter) - 1));
end
else
sl.Add(strTemp);
until I <= 0;
Result := sl.Count;
end;
干吗用ExtractString啊,stringLIst本身就有这样的功能。
procedure TForm1.Button1Click(Sender: TObject);
var
sl:TStringList;
i:integer;
begin
sl:=TstringList.Create;
sl.Delimiter:=,;
sl.DelimitedText:=asdf,asdfas,asdf,fff,dfff;
for i:=0 to sl.Count-1 do
begin
showMessage(sl.Strings[i]);
end;
end;