delphi里面有没有将字符串分割成数组的函数 像asp中的split?(50分)

  • 主题发起人 主题发起人 myufeiyang
  • 开始时间 开始时间
我不知道 asp的split
什么是 将字符串分割成数组 ?
是将字符串分解成单个字符,然后存入数组中,就好象c语言对字符串的处理方式?
如果是这样,建议你自己写一个函数,比问问题省时间。
 
当然有,在单元classes.pas里,原型是:

function ExtractStrings(Separators, WhiteSpace: TSysCharSet
Content: PChar
Strings: TStrings): Integer;

作用:
  将串Content分解成一个String列表。
 
举个使用例子,例如:
Content = '123,234, 567, 890, 099';
var
flist: TStrings;

ExtractStrings([','], [' '], Content, FList);//使用','来拆分串

执行结果:
  FList[0] := '123';
FList[1] := '234';
FList[2] := ' 567';
FList[3] := ' 890';
FList[4] := ' 099';

如果:
Content = '123,234,567#890#099';

ExtractStrings([',', '#'], [], Content, FList);//使用字符','和'#'来拆分串

结果:
  FList[0] := '123';
FList[1] := '234';
FList[2] := '567';
FList[3] := '890';
FList[4] := '099';
 
俺自己做了一个,挺好用的
function TForm1.StrSplit(const s:string
const ch:string):TStringList;
var
sTMP : string;
i : integer;
begin
Result:=TStringList.Create;
sTMP:=Trim(s);
i:=Pos(ch,sTMP);
while i<>0 do begin
Result.Add(Copy(sTMP,0,i-1));
delete(sTMP,1,i);
i:=Pos(ch,sTMP);
end;
Result.Add(sTMP);
end;
 
我有类似的两个,自己做的。其实Delphi自己有带的,故不重贴了。
 

首先感谢大家,gong666的 ExtractStrings 函数 我用的时候总是出错,后来查了
资料发现TStrings是一个抽像类,它的构造方法没有实现,是被它的子孙类所实现的,所以如果你要使
用它的话,必须用它的子孙类来创建,然后才能使用 ,就是tstringlist.create
.。
 
后退
顶部