aaabbbbddeeff#dddvvbxvvb#
我想取#号前面的字符串  有什么函数好用吗?

解决方案 »

  1.   

    uses StrUtilsprocedure TForm1.Button1Click(Sender: TObject);
    var
      s: string;
    begin
      s:= 'aaabbbbddeeff#dddvvbxvvb#';
      s:= leftstr(s,pos('#',s)-1);
      showmessage(s);
    end;
      

  2.   


    function ExtractString(const aStr: string; var Pos: Integer): string;
    var
      I: Integer;
    begin
      I := Pos;
      while (I <= Length(aStr)) and (aStr[I] <> '#') do Inc(I);
      Result := Trim(Copy(aStr, Pos, I - Pos));
      if (I <= Length(aStr)) and (aStr[I] = '#') then Inc(I);
      Pos := I;
    end;var
      Pos:integer;
      lStr:String;
    begin
      Pos:=1;
      lStr:='aaabbbbddeeff#dddvvbxvvb#'
      while Pos <= Length(lStr) do
      begin
        ShowMessage(ExtractString(lStr, Pos));
        // do something with Name
      end;
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      s,t: string;
      ss: Tstringlist;
      i: integer;
    begin
      ss:= TStringlist.Create;
      s:= 'aaabbbbddeeff#dddvvbxvvb#';
      t:= s;
      while pos('#',s) > 0 do
      begin
        t:= leftstr(s,pos('#',s)-1);
        ss.Add(t);
        s:= copy(s,pos('#',s)+1,pos('#',s));
      end;  for i:= 0 to ss.Count-1 do
        showmessage(ss.Strings[i]);
    end;
      

  4.   

    var
     sl: TStringList;
    begin
      s := TStringList.Create;
      try
        s.Delimiter :='#';
        s.CommaText := 'aaabbbbddeeff#dddvvbxvvb#';
      finally
        s.Free;
      end;
    end;这样以后,则
    s.String[0]=aaabbbbddeeff , s.string[1]=dddvvbxvvb
      

  5.   

    str :='aaabbbbddeeff#dddvvbxvvb#';
    copy(str,1,pos('#',str)-1)