Learning never exhausts the mind

Published on by

Return the nth position of string character within a string.

Return the nth position of search character within a string.

Usage:

pos := nPos('/', 'c:/mypath/to/somefile/', 3);

pos = 13

function nPos(C: char; S: string; N: byte): byte;
var
  I, P, K: Integer;
begin
  Result := 0;
  K := 0;
  for I := 1 to N do
  begin
    P := Pos(C, S);
    Inc(K, P);
    if (I = N) and (P > 0) then
    begin
      Result := K;
      Exit;
    end;
    if P > 0 then
      Delete(S, 1, P)
    else
      Exit;
  end;
end;

Leave a Reply

Fields marked with * are mandatory.

We respect your privacy, and will not make your email public. Hashed email address may be checked against Gravatar service to retrieve avatars. This site uses Akismet to reduce spam. Learn how your comment data is processed.