Функция StringReplace – заменяет символ или набор символов в строке на указанный символ или набор символов. Функция входит в состав библиотеки SysUtils и имеет несколько входных параметров – обрабатываемую текстовую строку, заменяемую часть, часть на которую будет произведена замена, дополнительные параметры замены (флаги). Результатом работы функции является исходная строка с внесенными изменениями.
Синтаксис функции: StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string
Где:
S – исходная строка;
OldPattern – старый символ или набор символов;
NewPattern – новый символ или набор символов;
Flags – параметры замены. Имеет два значения rfReplaceAll и rfIgnoreCase указывающих способ поиска и замены. rfReplaceAll – заменяет в тексте все найденные символы или наборы символов, указанные в параметре OldPattern на NewPattern. rfIgnoreCase – игнорирует регистры (малые и большие текстовые символы не учитываются).
Примеры работы функции StringReplace:
procedure TForm1.Button1Click(Sender: TObject);
const str=‘СъЕшь-ещЕ_этих-сладких_яблочЕк!’;
var sMsg:string;
begin
//замена первого найденного символа «-«
sMsg:=‘Строка до преобразования [‘+str+‘]’+#13+
‘Строка после одиночной замены «-» [‘+stringReplace(str,‘-‘,‘ ‘,[])+‘]’;
ShowMessage(sMsg);
//замена всех найденных в строке «_»
sMsg:=‘Строка до преобразования [‘+str+‘]’+#13+
‘Строка после замены всех «_» пробелами [‘+stringReplace(str,‘_’,‘ ‘,[rfReplaceAll])+‘]’;
ShowMessage(sMsg);
//замена всех «е» и малых и больших (без учета регистра) на ее код в таблице ASCII
//коды малых и больших символов отличаются. В данном примере замена на код «е» в нижнем регистре
sMsg:=‘Строка до преобразования [‘+str+‘]’+#13+
‘После замены всех «е» на код символа. Поиск без учета регистра [‘+
stringReplace(str,‘е’,inttostr(ord(‘е’)),[rfReplaceAll,rfIgnoreCase])+‘]’;
ShowMessage(sMsg);
end;