Можно также хотеть взглянуть на httplib2, с примеры . Я нахожу, что использование httplib2 более кратко, чем использование встроенных HTTP-модулей.
Используйте StrRScan
или AnsiStrRScan
, оба в блоке SysUtils . Последний, несмотря на свое название, работает с символами Unicode в версиях Delphi, где string
- UnicodeString
. (Если вам все еще нужна «настоящая» версия Ansi, используйте модуль AnsiStrings .)
Эти функции ищут только один символ, тогда как LastDelimiter
ищет любой из нескольких символов из данный список возможностей - представьте StrRScan
как LastDelimiter
, оптимизированный для односимвольного аргумента Delimiters
.
И вот мой вклад в нахождение положения n-го вхождения подстроки в строке.
function GetPositionOfNthOccurence(sSubStr, sStr: string; iNth: integer): integer;
var
sTempStr: string;
iIteration: integer;
iTempPos: integer;
iTempResult: integer;
begin
result := 0;
// validate input parameters
if ((iNth < 1) or (sSubStr = '') or (sStr = '')) then exit;
// evaluate
iIteration := 0;
iTempResult := 0;
sTempStr := sStr;
while (iIteration < iNth) do
begin
iTempPos := Pos(sSubStr, sTempStr);
if (iTempPos = 0) then exit;
iTempResult := iTempResult + iTempPos;
sTempStr := Copy(sStr, iTempResult + 1, Length(sStr) - iTempResult);
inc(iIteration);
end;
result := iTempResult;
end;