Delphi pos最後

在Delphi中,Pos 函式是字元串處理函式,它返回一個整數,表示子字元串在主字元串中第一次出現的起始位置。如果子字元串沒有在主字元串中找到,則返回 0。

Pos 函式的語法如下:

function Pos(Substring, StringToSearch: string; StartPos: Integer = 1): Integer;

如果你想知道子字元串最後一次出現的位置,你可以使用 Pos 函式結合 LastDelimiter 函式或者 Reverse 函式。

例如,使用 LastDelimiter 函式:

function GetLastPos(const Substring, StringToSearch: string): Integer;
var
  LastPos: Integer;
begin
  LastPos := Pos(Substring, StringToSearch);
  if LastPos > 0 then
    LastPos := LastPos + Length(Substring) - 1; // 假設Substring的長度大於0
  Result := LastPos;
end;

這個函式會返回 SubstringStringToSearch 中最後一次出現的位置。如果 Substring 沒有出現,則返回 0。

如果你想要一個更加通用的解決方案,可以考慮使用 Reverse 函式來反轉字元串,然後使用 Pos 函式查找子字元串,最後反轉結果以得到原始的最後一次出現的位置:

function GetLastPos(const Substring, StringToSearch: string): Integer;
var
  ReversedString: string;
begin
  ReversedString := ReverseString(StringToSearch);
  Result := Pos(Substring, ReversedString);
  if Result > 0 then
    Result := Length(StringToSearch) - Result;
end;

這個函式同樣會返回 SubstringStringToSearch 中最後一次出現的位置。

請注意,這些方法假設 Substring 的長度大於 0,並且 StringToSearch 不包含任何 Substring 的重複序列。如果這些假設不成立,你可能需要更複雜的算法來處理這種情況。