{按指定的字符分割字符串}
用ExtractStrings函数,无论你有多少个'|'都能以它来分割
procedure TForm1.Button1Click(Sender: TObject);
var
    strs:tstringlist;
    i:integer;
begin
    strs:=tstringlist.create;
    ExtractStrings(['|'],[],'1|abcde|fgggg'{//这里要是换成字符串变量就不行了},strs);
    for i:=0 to strs.Count -1 do
        ShowMessage(strs.Strings[i]);
    strs.free;
end;这个函数不错 可是中间的字符串一换成STRING变量就完,报错过不去!!!
谁能帮我解决这个问题,高手救俺

解决方案 »

  1.   

    先把字符串变量转换为PChar类型即可,如:
    aStr:String;
    aStr:='1|abcde|fgggg';
    ExtractStrings(['|'],[],PChar(aStr),strs);
      

  2.   

    原因是:ExtractStrings函数的第三个参数(即:需要分析的字符串)是一个PChar类型的参数.
      

  3.   

    变成PCHAR 什么都取不出来自己先试好了再说
      

  4.   

    算了 该自己倒霉 其实我先用pcha转换过了 就是没注意结果,以为是空