Delphi数组字符串串列表转换

14ifxucb  于 2022-10-16  发布在  其他
关注(0)|答案(3)|浏览(190)

在Delphi中,有没有一种简单的方法可以将字符串数组转换为tStringList?

sc4hvdpw

sc4hvdpw1#

一旦创建了字符串列表,就可以简单地调用AddStrings()
或者,对于不支持接受数组的AddStrings()重载的较旧版本的Delphi,您可以使用自己的重载。

function StringListFromStrings(const Strings: array of string): TStringList;
var
  i: Integer;
begin
  Result := TStringList.Create;
  for i := low(Strings) to high(Strings) do
    Result.Add(Strings[i]);
end;

使用开放数组参数为调用者提供了最大的灵活性。

wqsoz72f

wqsoz72f2#

对于Delphi的预泛用版本,您可以使用如下内容:

type
  TStringArray = array of string;

procedure StringListFromStrings(const StringArray: TStringArray; 
  const SL: TStringList);
var
  // Versions of Delphi supporting for..in loops
  s: string;

  // Pre for..in version
  // i: Integer;
begin
  // TStringList should be created and passed in, so it's clear
  // where it should be free'd.
  Assert(Assigned(SL));

  // Delphi versions with for..in support
  for s in StringArray do
    SL.Add(s);

  // Pre for..in versions
  // for i := Low(StringArray) to High(StringArray) do
  //   SL.Add(StringArray[i]);
end;
nwo49xxi

nwo49xxi3#

在最新的Delphi版本中,您可以像这样调用TStrings和TstringList类的“addStrings”方法:

function StringListFromStrings(const Strings: array of string): TStringList;
var
  i: Integer;
begin
  Result := TStringList.Create;
  Result.addStrings(Strings);
end;

您可以在https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Classes.TStrings.AddStrings上找到有关此方法的文档

相关问题