delphi TStringList的用法

如题所述

dephi中没有象VB中的split函数,但是使用TStringList类的 Delimter 和 DelimtedText 两个属性可以很容易的把字符串分割,然后放入 TStrings里面.
例:
s:='aa,bb,cc,dd'
ts := TStringList.Create
ts.Delimter := ','
ts.DelimtedText := s
//这时 ts里面就存放了 aa bb cc dd 这四个strings了. 你只要通过 ts[0]就可以取第一个数据
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;
procedure StrToStrs(str:string;strs:tstrings);
var temp:string;
i:integer;
label B,E;
begin
B:
i:= ansipos('|',str);
if i=0 THEN GOTO E;
strs.Add(ansileftstr(str,i-1));
str:=ansirightstr(str,length(str)-i);
GOTO B;
E:
end;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-16
错误提示的很清楚
你定义的是一个对象方法,而TStringListSortCompare
原型是个普通的方法类型,这样隐含的self指针造成不兼容
把它放到外面来
function NumberSort(list: TStringList; index1,
index2: Integer): Integer;
begin
...
end
另外你想要 StrToInt('测试错误') 吗?
第2个回答  推荐于2016-07-02
给你个小例子
procedure TForm1.Button1Click(Sender: TObject);
var
TestList: TStringList;
i: integer;
begin
TestList := TStringList.create;
TestList.add('1');
TestList.add('2');
for i := 0 to TestList.count - 1 do
begin
showmessage(TestList[i]);
end
end;本回答被提问者采纳
相似回答