比如一个字符串,"张三,李四,王五",写个过程提取出三个人的名字,说明:姓名之间都是逗号隔开的。如果有空格的话怎么处理?

解决方案 »

  1.   

    使用一个循环,用pos定位“,”号,然后substr函数取名字就可以了。
      

  2.   

    type
      Strings=array of string;function Split(const pstrin,psplitchar:string):Strings;
    var
     i,j:integer;
     strin,splitchar:string;
     tempstr:string;
    begin
     i:=0;
     strin:=pstrin;splitchar:=psplitchar;
     strin:=trim(strin);
     j:=pos(splitchar,strin);
     setlength(result,0);
     while j>0 do
     begin
       tempstr:=leftBstr(strin,j-1);
       inc(i);
       setlength(result,i);
       result[i-1]:=trim(tempstr);
       strin:=rightBstr(strin,length(strin)-j);
       strin:=trim(strin);
       j:=pos(splitchar,strin);
     end;
     setlength(result,i+1);
     result[i]:=strin;
    end;
    刚写的一个函数,可以处理空格的情况。
    用法演示:
    var
     test:Strings;
     str:string;
     i:integer;
    begin
     str:='张三 ,  李四  ,  王五  ';
     test:=Split(str,',');
     for i:=0 to length(test)-1 do
      showmessage(test[i]);
     showmessage(str);
    end;
      

  3.   

    Delphi里有现成的函数:
    function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer;其中Separators是分割符,在此例中是 ','
    WhiteSpace是可以忽略的行首字符,一般不用管
    Content是待分割的字符串
    Strings是分割后,存储各个段的字符串列表实例:Form1上一个Edit1,内容是:“张三, 李四,  王五    ”其中有空格;然后一个Button1
           然后一个Memo1输出结果procedure TForm1.Button1Click(Sender: TObject);
    var
     tmpList: TStrings;
     i: Integer;
    begin
     tmpList:=TStringList.Create;
     try
      ExtractStrings([','],[],PChar(Edit1.Text),tmpList); //一句话搞定分割
      Memo1.Lines.Clear; //清空,等待输出结果
      for i:=0 to tmpList.Count-1 do
       Memo1.Lines.Append(Trim(tmpList[i])); //输出时去掉空格
     finally
      tmpList.Free;
     end; //end of try
    end;
      

  4.   

    str:=trim(张三,李四,王五);
    i=0
    从str[i]start:
    ;i++if 空格 then
       删除空格
    if , then a[0]=,前的。。a[n]=,前的
    结果:a[1]-a[0],a[2]-a[1],....a[n]-a[n-1];
      

  5.   

    复人: readersm68(地主) ( ) 信誉:100  2004-10-06 17:43:00  得分: 0  
     
     
       多五条内裤了,怎么还问这种问题????
      回复人: boatzm(晓舟)【塑料的玫瑰花-假的】(#_#!) ( ) 信誉:100  2004-10-06 18:42:00  得分: 0  
     
     
       内裤--怎么来的?!……