我正在加载一个文本文件(其中包含许多行,一些包含空格或制表符)到StringList.如何从整个StringList中删除空格(不包括换行符)?
Dav*_*nan 17
这是一个粗略的解决方案,假设选项卡和空格是唯一的空格字符:
tmp := Strings.Text;
tmp := StringReplace(tmp, #9, '', [rfReplaceAll]);
tmp := StringReplace(tmp, #32, '', [rfReplaceAll]);
Strings.Text := txt;
Run Code Online (Sandbox Code Playgroud)
这是一个更高级的版本,可以检测任何空格:
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);
Run Code Online (Sandbox Code Playgroud)
你需要一个Unicode版本的Delphi,你需要使用该Character单元.
如果您使用的是非Unicode版本的Delphi,那么您可以将if替换为:
if not (s[i] in [#9,#32]) then begin
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17688 次 |
| 最近记录: |