Массив delphi преобразования строкового строкового списка

Есть ли простой способ в delphi преобразовать массив строк в tstringlist?

Ответы

Ответ 1

Как только вы создали список строк, вы можете просто вызвать AddStrings().

Или для более старых версий Delphi, которые не поддерживают перегрузки AddStrings(), которые принимают массивы, вы можете перевернуть свои собственные.

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;

Использование параметра открытого массива обеспечивает максимальную гибкость для вызывающего.

Ответ 2

Для предопределенных версий 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 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;