gpt4 book ai didi

delphi - 更改 TStrings.Delimiter 会中断按名称搜索

转载 作者:行者123 更新时间:2023-12-03 15:54:16 25 4
gpt4 key购买 nike

以下代码有效:

var
SL: TStrings;
begin
SL := TStringList.Create;
try
SL.Add(Format('%s=%s', ['Alex', '14.05.1984']));

ShowMessage(SL.Values['Alex']);
finally
SL.Free;
end;
end;

虽然此代码不起作用(无法从名称获取值):

var
SL: TStrings;
begin
SL := TStringList.Create;
try
SL.Delimiter := '|'; // <=== changed from default '=' char
SL.QuoteChar := '"'; // <=== added
SL.StrictDelimiter := True; // <=== added

SL.Add(Format('%s=%s', ['Alex', '14.05.1984']));

ShowMessage(SL.Values['Alex']); // <=== returns an empty string
finally
SL.Free;
end;
end;

有人可以帮助我吗?

已编辑

program Sample;

{$APPTYPE CONSOLE}

uses
SysUtils,
Classes,
Dialogs;

var
SL: TStrings;
begin
try
SL := TStringList.Create;
try
SL.Delimiter := '|';
SL.QuoteChar := '"';
SL.StrictDelimiter := True;

// SL.Add(Format('%s=%s', ['Alex', '14.05.1984']));
SL.LoadFromFile('ReplacementPairs.txt');
ShowMessage(SL.Values['Alex']);
finally
SL.Free;
end;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.

ReplacementPairs.txt 文件的内容是:

Alex|14.05.1984
Paul|10.07.2015
Edith|18.11.1961

最佳答案

确定名称和值之间分隔符的属性是 NameValueSeparator 。因此,将其设置为 '|' 并且代码应该按照您的意愿运行。

我不禁觉得字典会更适合你的需要。

关于delphi - 更改 TStrings.Delimiter 会中断按名称搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28436243/

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