Якщо у вас виникла необхідність видалити подвійні пробіли або замінити подвійні пробіли одинарними за допомогою Delphi, то можна скористатися наступною функцією:
- function StringReplace (const SourceString, OldPattern, NewPattern : string; Flags : TReplaceFlags) : string b>;
Функція StringReplace замінює перше або всі входження підрядка OldPattern у SourceString рядком NewPattern відповідно до налаштувань >Flags. Як результат функції повертається змінений рядок.
Змінна Flags може містити жодного, одне або обидва з цих значень:
- rfReplaceAll : замінює всі входження
- rfIgnoreCase : ігнорує регістр під час пошуку
Ці значення задаються у квадратних дужках.
Приклад заміни подвійних пробілів одинарними в Delphi:
uses SysUtils;
var
before, after : string;
begin
before:='Текст у якому видаляються подвійні пробіли за допомогою Delphi';
after := StringReplace(before, ' ', ' ', [rfReplaceAll]);
ShowMessage(before);
//Виведе: Текст у якому видаляються подвійні пробіли за допомогою Delphi
ShowMessage(after);
//виведе: Текст у якому видаляються подвійні пробіли за допомогою Delphi
end;
end;
Для видалення повторюваних пробілів у Delphi ви можете використовувати таку функцію:
function DelDoubleSpaces(OldText:String):string;
var i:integer;
s:string;
begin
if length(OldText)>0 then
s:=OldText[1]
else
s:='';
for i:=1 length(OldText) do
begin
if OldText[i]=' ' then
begin
if not (OldText[i-1]=' ') then
s:=s+' ';
end
else
begin
s:=s+OldText[i];
end;
end;
DelDoubleSpaces:=s;
end;