for i:=Length(s) downto 1 do
  if s[i]='-' then
    Delete(...);

解决方案 »

  1.   


     StrPos(const Str1, Str2: PChar): PChar;  定位
      

  2.   

    Apollo47(阿波罗) :好!s就是string类型的
      

  3.   

    调用以下函数的方法是:假如删除“abcdef”中的“c”或“cd”
    Edit1.Text := FilterSpecialString('abcdef','c');  //Edit1.Text='abdef';
    Edit1.Text := FilterSpecialString('abcdef','cd'); //Edit1.Text='abef';
    Function TForm1.FilterSpecialString(OriginString, SpecialString: String): String;
    Var
      i,j : Integer;
      FromSit,ToSit : Integer; //源字符串的位置
      ResultString : String;   //返回结果字符串
      OriginStrLength, SpecialStrLength : Integer; //源字符串和特殊字符串的长度
    begin
      Result := '';
      If (SpecialString = '') Or (Length(SpecialString) > Length(OriginString)) Then
      begin
        Result := OriginString;
        Exit;
      End;
      ResultString := '';
      j := 1;
      i := 1;
      FromSit := 1;
      OriginStrLength := Length(OriginString);
      SpecialStrLength := Length(SpecialString);
      While(i <= OriginStrLength) Do
      Begin
        If OriginString[i] = SpecialString[j] Then
        Begin
          If j = SpecialStrLength Then 
          Begin
            ToSit := i;
            ResultString := ResultString + Copy(OriginString,FromSit,ToSit - SpecialStrLength - FromSit + 1);
            FromSit := i + 1;
            j := 1;
          End
          Else
            j := j + 1;
        End
        Else 
        Begin
          If j <> 1 Then i := i - j + 1;
          j := 1;
        End;
        i := i + 1;
      End;
      ResultString := ResultString + Copy(OriginString,FromSit,OriginStrLength - FromSit + 1);
      Result := ResultString;
    end;