大侠帮帮忙看下,怪事 目录分割符出错(50分)

  • 主题发起人 主题发起人 fred_jing
  • 开始时间 开始时间
F

fred_jing

Unregistered / Unconfirmed
GUEST, unregistred user!
temp6:= '/a/b/c d/'
createdir.Delimiter := '/';
createdir.DelimitedText := temp6;
我用DelimitedText属性分割temp,分割符是 / ,到c d目录时候,因为该目录有个空格,c d一个目录怎么也被分为了c,d目录,这样就变成了4个目录了,,怎么办
 
如果需要在Delphi内对某一字符串进行分隔(字符串有固定的分隔标记),一般情况下好像都是自己写一个函数来实现。其实在Delphi内有一个写好的函数,只是不在常用的单元内。它在xmlutil单元内,名称是Split0。
function Split0(Str: string;
const substr: string): TStringList;


这是原形,第一个参数是待分隔的字符串,第二个是分隔标记,返回值是StringList。
需要注意的是,在调用此函数后,你得去释放它生成的StringList,否则可以会造成内存泄漏。
例:
procedure SetASResult(Value: String);

var slTemp1:TStringList;

begin

MyASResult.Clear;

slTemp1:=Split0(Value,'|');

FASResult.AddStrings(slTemp1);

FreeAndNil(slTemp1);//<---------slTemp1不需要你自己创建Create,但用完后需要你来FreeAndNil。
end;
 
接受答案了.
 
后退
顶部