冥界3大法王 发表于 2024-2-13 17:27

16进制的0D0A如何表示?不算#13#10空白行吗?咋删除掉?

本帖最后由 冥界3大法王 于 2024-2-13 17:30 编辑

测试文字如下:
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\A1.自带原装\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\000.顶部工具栏调用\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\A3\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\000.顶部工具栏调用\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\A1.自带原装\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\A3\

X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\000.顶部工具栏调用\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\A1.自带原装\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\A3\

X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\000.顶部工具栏调用\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\A1.自带原装\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\A3\

X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\000.顶部工具栏调用\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\A1.自带原装\
X:\0.自创工具for delphi10.4.1\38.超级Delphi代码生成器终极合体版\Win32\Release\控件大全\A3\

111
222
3333

111
222
3333


procedure TForm7.删除重复行1Click(Sender: TObject);
var
pList: TStringList;
I: Integer;
begin
pList := TStringList.Create;
pList.sorted := True;
pList.Duplicates := dupIgnore;

for I := pList.count - 1 downto 0 do                        //这几行为了删除空行!
begin
    if (Trim(pList) = '') or (pList = #10#13) then   ====>我怀疑 (pList = #10#13)这个写得不对!
    begin
      pList.Delete(I);
      pList := StringReplace(pList, #13#10, '', );
    end;
end;

pList.LoadFromFile('X:\delphi\收藏菜单文件列表.txt');
pList.SaveToFile('X:\delphi\收藏菜单文件列表2.txt');
pList.Free;
end;

冥界3大法王 发表于 2024-2-13 17:40

本帖最后由 冥界3大法王 于 2024-2-13 18:00 编辑

问题2:为啥 pList.LoadFromFile('X:\delphi\收藏菜单文件列表.txt');放在最下面呢?
不太理解,请专家作答。{:301_974:}

hrpzcf 发表于 2024-2-13 17:55

删掉0d就行了,

DEATHTOUCH 发表于 2024-2-13 17:57

本帖最后由 DEATHTOUCH 于 2024-2-13 18:01 编辑

头尾的空行什么的Trim就能删掉,在stringlist里面的话判断某一行是不是空字符串就可以删了,不用管CRLF。
类似下面这样:
    for i:=sl.Count-1 downto 0 do
    begin
      if sl='' then
      sl.Delete(i);
    end;

冥界3大法王 发表于 2024-2-13 17:57

hrpzcf 发表于 2024-2-13 17:55
删掉0d就行了,

用程序代码删除,不能人为操作。

冥界3大法王 发表于 2024-2-13 18:01

DEATHTOUCH 发表于 2024-2-13 17:57
头尾的空行什么的Trim就能删掉,在stringlist里面的话判断某一行是不是空字符串就可以删了,不用管CRLF。

问题是代码里加了,为啥没效果?

DEATHTOUCH 发表于 2024-2-13 18:04

冥界3大法王 发表于 2024-2-13 18:01
问题是代码里加了,为啥没效果?

文件结尾是会默认换行符的,是没问题的,那个不算空行。

苏紫方璇 发表于 2024-2-13 18:45

空行一般是两个连续\r\n回车换行符吧

sunsjw 发表于 2024-2-14 09:31

冥界3大法王 发表于 2024-2-13 17:40
问题2:为啥 pList.LoadFromFile('X:\delphi\收藏菜单文件列表.txt');放在最下面呢?
不太理解,请专家作 ...

如果是删除这个txt里的换行符,那肯定是要放在前面。

sunsjw 发表于 2024-2-14 09:39

#13#10 是这样子的吧
页: [1] 2
查看完整版本: 16进制的0D0A如何表示?不算#13#10空白行吗?咋删除掉?