问题1:怎么找出,一个字符串中的‘/’字符的个数,
问题2:
例如: 
s1,s2,s3:string;
function searchString();
s1:='name/pwd/name1/name2/name3'
请问function searchString()就是找出字符串中的字符,
searchString(1,s1) 我想取出字符串s1的第一个字符,就是name
searchString(2,s1) 我想取出字符串s1的第二个字符,就是pwd
searchString(3,s1) 我想取出字符串s1的第三个个字符,就是name1依此类推,请问searchString函数怎么实现?????????????

解决方案 »

  1.   

    function searchString(i:integer;s:string):string;
    var 
      itm:Tstringlist;
       
    begin
     //s:='name/pwd/name1/name2/name3';
       itm:=tstringlist.Create;
       itm.Delimiter:='/';
       itm.DelimitedText:=s ;
       Result:=itm.strings[i-1];
    end;
      

  2.   

    改成这样更好一点。function searchString(i:integer;s:string):string;
    var
      itm:Tstringlist;begin
       itm:=tstringlist.Create;
       itm.Delimiter:='/';
       itm.DelimitedText:=s ;
       if (i>itm.Count) or (i<1 ) then
       begin
       result:='';
       itm.Free ;
       exit;
       end;
       Result:=itm.strings[i-1];
       itm.Free;
    end;
      

  3.   

    zmy9709(温柔一刀)改得好!
    楼主可以揭贴了。
      

  4.   

    ////////////////取字符串流的第N个位置的字符串/////////////////////////////
    function  GetMaskString(S,Mask:string;Position:integer):string;
    var
    Str:string;
    i,Len:integer;
    begin
       Str:='';
       for i:=0  to  position -1  do
       begin
            if (Pos(Mask,S))<=0  then
            begin
                 Str:=S;
                 Break;
            end;
            Str:=Copy(S,1,Pos(Mask,S)-1);
            Len:=Length(Str);
            S:=Copy(S,Len+2,Length(S)-Len-1);
       end;
       Result:=Str;
    end;//
    var
      s1:string;
    begin
      s1:='name/pwd/name1/name2/name3/'
      edit1.text=GetMaskString(s1,/,1);//name
      edit2.text=GetMaskString(s1,/,2);//pwd
    end;