首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改TStrings.Delimiter按名称中断搜索

更改TStrings.Delimiter按名称中断搜索
EN

Stack Overflow用户
提问于 2015-02-10 16:06:00
回答 1查看 175关注 0票数 3

以下代码起作用:

代码语言:javascript
复制
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;

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

代码语言:javascript
复制
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;

有人能帮我吗?

编辑的

代码语言:javascript
复制
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文件的内容是:

代码语言:javascript
复制
Alex|14.05.1984
Paul|10.07.2015
Edith|18.11.1961
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-10 16:39:16

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

我情不自禁地觉得一本字典更适合你的需要。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28436243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档