gpt4 book ai didi

delphi - Delphi中如何删除文本文件中的特定行

转载 作者:行者123 更新时间:2023-12-03 14:42:10 25 4
gpt4 key购买 nike

我有一个文本文件,其中逐行存储了用户信息。每行的格式为:UserID#UserEmail#UserPassword,其中“#”为分隔符。

我尝试使用此编码来执行任务:

var sl:TStringList;
begin
sl:=TStringList.Create;
sl.LoadFromFile('filename');
sl.Delete(Index);
sl.SaveToFile('filename');
sl.free;
end;

但我不确定在“索引”空间中放置什么。

有什么方法可以接收用户 ID 作为输入,然后从包含该用户 ID 的文本文件中删除文本行吗?任何帮助将不胜感激。

最佳答案

您可以将 NameValueSeparator 设置为 #,然后使用 IndexOfName 查找用户,只要用户名是文件中的第一个值即可。

sl.NameValueSeparator := '#';
Index := sl.IndexOfName('455115')

所以在你的例子中,就像这样

var sl:TStringList;
begin
sl:=TStringList.Create;
sl.LoadFromFile('filename');
sl.NameValueSeparator := '#';
Index := sl.IndexOfName('455115')
if (Index <> -1) then
begin
sl.Delete(Index);
sl.SaveToFile('filename');
end;
sl.free;
end;

这对于大文件来说可能会很慢,因为 IndexOfName 循环遍历 TStringList 中的每一行并依次检查每个字符串,直到找到匹配项。

免责声明:经过测试/适用于 Delphi 2007,Delphi 7 可能有所不同。

关于delphi - Delphi中如何删除文本文件中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39021743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com