Delphi массив преобразования строки списка строк - PullRequest
16 голосов
/ 04 мая 2011

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

Ответы [ 2 ]

13 голосов
/ 04 мая 2011

Создав список строк, вы можете просто вызвать 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;

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

9 голосов
/ 04 мая 2011

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