Вот грубое решение, предполагающее, что символы табуляции и пробела являются единственными символами пробела:
tmp := Strings.Text;
tmp := StringReplace(tmp, #9, '', [rfReplaceAll]);
tmp := StringReplace(tmp, #32, '', [rfReplaceAll]);
Strings.Text := txt;
Вот более продвинутая версия, которая обнаружит любые пробелы:
function RemoveWhiteSpace(const s: string): string;
var
i, j: Integer;
begin
SetLength(Result, Length(s));
j := 0;
for i := 1 to Length(s) do begin
if not TCharacter.IsWhiteSpace(s[i]) then begin
inc(j);
Result[j] := s[i];
end;
end;
SetLength(Result, j);
end;
...
Strings.Text := RemoveWhiteSpace(Strings.Text);
Вам понадобится одна из версий Delphi для Unicode, и вам нужно будет использовать модуль Character
.
Если вы используете версию Delphi, отличную от Unicode, вы должны заменить if на:
if not (s[i] in [#9,#32]) then begin