我想将一个由一个或多个空格间隔的字符串分开(我会编,但不想编,累了),delphi有这样的函数吗?????

解决方案 »

  1.   

    var
      s: string;
      sl: TStringList;
      i: Integer;
    begin
      s := 'a bb  ccc     dddd';
      sl := TStringList.Create;
      sl.CommaText := s;
      for i := 0 to sl.Count - 1 do
        ShowMessage(sl[i]);
      sl.Free;
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      str: string;
      list1,list2: TStringList;
    begin
      str := 'hello world how are   you   and your   faminly';
      list1 := tstringlist.Create;
      list1.Delimiter := ' ';
      list1.DelimitedText := str;
      showmessage(list1.Strings[2]);
    end;
      

  3.   

    function newstr(oldstr:string):strings;
    var
    l,n:integer;
    tempstr:string;
    mylist:tstringlist;
    begin
      try
      mylist:=tstringlist.create;
      if oldstr<>'' then
      begin
       l:=length(oldstr);
       n:=pos(oldstr,' ');
       if n>0 then
       begin
         while n>0 do
         begin
           n:=pos(oldstr,' ');
           tempstr:=copy(oldstr,1,n);
           oldstr:=delete(oldstr,1,n);
           if trim(tempstr)<>'' then
           mylist.add(tempstr);
         end;
       result:=mylist.strings;
       end;
       finally
       mylist.free;
       end;
    end;