字符串形如:http://img12.360buyimg.com/n2/g5/M02/12/11/rBEIDE_ym3gIAAAAAAH-cY-b9d4AADnwwG6zW4AAf6J330.jpg要求,取最后一个“/”后的所有字符,也就是形如rBEIDE_ym3gIAAAAAAH-cY-b9d4AADnwwG6zW4AAf6J330.jpg如何做?

解决方案 »

  1.   

    var
      s: string;
    begin
      s := 'http://img12.360buyimg.com/n2/g5/M02/12/11d/drBEIDE_ym3gIAAAAAAH-cY-b9d4AADnwwG6zW4AAf6J330.jpg';
      s := ReverseString(s);
      s := Copy(s, 1, Pos('/', s) - 1);
      s := ReverseString(s);
      

  2.   


    首部 function ReverseString(const AText: string): string; $[StrUtils.pas
    功能 返回字符串AText的反序
    说明 ReverseString('1234') = '4321'
    参考 function System.SetLength
    例子 Edit3.Text := ReverseString(Edit1.Text);
      

  3.   

    function GetFileName(const sFilePath : string) : string;
    var
      i, nLen : integer;
    begin
      nLen := length(sFilePath);
      for i := nLen downto 1 do
      begin
        if sFilePath[i] = '/' then
        begin
          Result := copy(sFilePath, i + 1, nLen);
          exit;
        end;
      end;
      Result := '';
    end;procedure TForm1.FormCreate(Sender: TObject);
    const str = 'http://img12.360buyimg.com/n2/g5/M02/12/11/rBEIDE_ym3gIAAAAAAH-cY-b9d4AADnwwG6zW4AAf6J330.jpg';
    begin
      caption := GetFileName(str);
    end;
      

  4.   

    看看代码量吧,反转可以更快的定为到‘/’。这是ReverseString函数, 执行工作量不小function ReverseString(const AText: string): string;
    var
      I: Integer;
      P: PChar;
    begin
      SetLength(Result, Length(AText));
      P := PChar(Result);
      for I := Length(AText) downto 1 do
      begin
        P^ := AText[I];
        Inc(P);
      end;
    end;代码量问题, 写一个自定义函数GetFileName, 用户调用代码量就一行
      

  5.   


    用SysUtils.StrRScan函数就可以了。
    procedure TForm2.Button1Click(Sender: TObject);
    var
      s: string;
    begin
      s := SysUtils.StrRScan('http://img12.360buyimg.com/n2/g5/M02/12/11/rBEIDE_ym3gIAAAAAAH-cY-b9d4AADnwwG6zW4AAf6J330.jpg', '/');
      Memo1.Lines.Add(Copy(s, 2, Length(s) - 1));
    end;
      

  6.   

    SysUtils.LastDelimiter
    var
      I: Integer;
      S: string;
    begin
      S := 'http://img12.360buyimg.com/n2/g5/M02/12/11/rBEIDE_ym3gIAAAAAAH-cY-b9d4AADnwwG6zW4AAf6J330.jpg';
      I := LastDelimiter('/', S);
      Delete(S, 1, I);
      ShowMessage(S)
    end;
      

  7.   

    同意9楼做法
    参考Delphi系统文件的做法