标签:
已经好几次了,没有这个函数还是感觉很不方便,所以自己写了一个:
function LastPos(strFind :string; ch: Char): integer; var i, n: integer; begin Result := -1; if strFind=‘‘ then begin Exit; end; for i:=0 to Length(strFind) do begin if strFind[i]=ch then Result := i; end; end; procedure TForm1.Button1Click(Sender: TObject); var s1: String; begin s1 := ‘abc‘; ShowMessage(s1[1]); ShowMessage(IntToStr(Length(‘/myaccount/save1/‘))); ShowMessage(IntToStr(LastPos(‘/myaccount/save1/‘, ‘/‘))); end;
当然,这里没有考虑效率和Unicode等问题,反正对D7比较好用。
另一个算法,看看别人怎么写的吧(倒序是非正常思路):
function LastPos(const S: string; C: Char): Integer; var i: Integer; begin i := Length(S); while (i > 0) and (S[i] <> C) do Dec(i); Result := i; end;
自写的LastPos,寻找字符串里的最后一个字符,RTL里没有提供这个函数——Delphi的String下标是从1开始的
标签:
原文地址:http://www.cnblogs.com/findumars/p/5014781.html