(1)str='project eof'
(2)str='14.txt 12.txt 151.txt'如果str中有.txt,则将14.txt,12.txt,151.txt分别取出。

解决方案 »

  1.   

    var str, s: string;
      I: integer;
    begin
     str :='14.txt 12.txt 151.txt';
     i := Pos('.txt', str);
     while i > 0 do
     begin
       s := copy(str, 1, i +4);
       delete(str, 1, i+4);
       s := Trim(s);
       showmessage(s);
       i := Pos('.txt', str);
     end;
    end;
      

  2.   

    if Pos('.txt', str) > 0 then
    begin
      pos1:=Pos(' ',str);
      str1:=copy(str,1,6);
      str:=copy(str,7,length(str));
      str2:=copy(str,1,6);
      str:=copy(str,7,length(str));
      str3:=copy(str,1,6);
    end;
      

  3.   

    非常感谢二位的帮忙!但是这个str里的数据是不确定的。我在其他帖子上看到一个用stringlist的,可以解决这个问题。http://expert.csdn.net/Expert/topic/2655/2655738.xml?temp=9.939212E-02procedure TForm1.Button1Click(Sender: TObject);
    var
      i: integer;
      S: string;
      SL: TStringList;
    begin
      S := '111 222 333 444 555';
      SL := TStringList.Create;
      ExtractStrings([' '], [], PChar(S), SL);
      for i := 0 to SL.Count - 1 do
        showmessage(SL.Strings[i]);
      SL.Free;
    end;