Иллюстрированный самоучитель по Delphi 7 для профессионалов

Класс TStringList

Класс TStringList обеспечивает реальное использование списков строк в приложении. По существу, класс представляет собой оболочку вокруг динамического массива значений списка, представленного свойством strings. Объявление свойства (унаследованное от TStrings) выглядит так:

property Strings[Index: Integer]: string read Get write Put; default;

Для работы со свойством используются внутренние методы Get и Put, в которых применяется внутренняя переменная FList:

type
PStringltem = 'TStringltem;
TStringltem = record FString: string;
FObject: TObject;
end;
PStringltemList = ^TStringItemList;
TStringltemList = array[0..MaxListSize] of TStringltem;
FList: PStringltemList;

Из ее объявления видно, что список строк представляет собой динамический массив записей TStringItem. Эта запись позволяет объединить саму строку и связанный с ней объект.

Максимальный размер списка ограничен константой:

MaxListSize = Maxint div 16;

Значение которой после нехитрых вычислений составит 134 217 727. Таким образом, видно, что строковый список Delphi теоретически конечен, хотя на практике гораздо чаще размер списка ограничивается размером доступной памяти.

Обращение к отдельному элементу списка может осуществляться через свойство strings таким образом:

SomeStrings.Strings[i]: = Editl.Text;

Или так:

SomeStrings[i]: = Editl.Text;

Оба способа равноценны.

При помощи простого присваивания можно задавать новые значения только тогда, когда элемент уже создан. Для добавления нового элемента используются методы Add и AddStrings.

Функция:

function Add(const S: string): Integer;

Добавляет в конец списка новый элемент, присваивая ему значение s и возвращая индекс нового элемента в списке.

Метод:

procedure Append(const S: string);

Просто вызывает функцию Add. Единственное отличие заключается в том, что метод не возвращает индекс нового элемента.

Метод:

procedure AddStrings(Strings: TStrings);

Добавляет к списку целый набор новых элементов, которые должны быть заданы другим списком, передаваемым в параметре strings.

При необходимости можно добавить новый элемент в произвольное место списка. Для этого применяется метод:

procedure Insert(Index: Integer; const S: string);

Который вставляет элемент s на место элемента с индексом index. При этом все указанные элементы смещаются на одну позицию вниз.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.