Mar*_*den 9 delphi delphi-7 text-files
我有一个文本文件,其中逐行存储了用户信息.每行的格式为:UserID#UserEmail#UserPassword'#'为分隔符.
我试图使用此编码来执行任务:
var sl:TStringList;
begin
sl:=TStringList.Create;
sl.LoadFromFile('filename');
sl.Delete(Index);
sl.SaveToFile('filename');
sl.free;
end;
Run Code Online (Sandbox Code Playgroud)
但我不确定在"索引"空间放什么.
有什么方法可以接收用户ID作为输入,然后从具有此用户ID的文本文件中删除文本行?任何帮助,将不胜感激.
您可以设置NameValueSeparator为#然后使用IndexOfName查找用户,只要用户名是文件中的第一个值.
sl.NameValueSeparator := '#';
Index := sl.IndexOfName('455115')
Run Code Online (Sandbox Code Playgroud)
所以在你的例子中,就像这样
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;
Run Code Online (Sandbox Code Playgroud)
对于大型文件,这可能会很慢,因为IndexOfName会循环访问TStringList中的每一行,并依次检查每个字符串,直到找到匹配项为止.
免责声明:测试/使用Delphi 2007,Delphi 7可能不同.
| 归档时间: |
|
| 查看次数: |
3104 次 |
| 最近记录: |