Класс TM_StringList можно использовать для хранения списка строк. Данный класс обладает следующими свойствами и методами:
Метод |
Описание |
---|---|
function Add(const S: string): Integer; |
Добавляет строку S в список |
procedure Insert(Index: Integer; const S: string); |
Добавляет строку S в список в позицию Index |
procedure Delete(Index: Integer); |
Удаляет из списка элемент с указанным индексом |
procedure Exchange(Index1, Index2: Integer); |
Меняет местами элементы в указанных позициях |
procedure Clear; |
Очищает список |
function IndexOf(const S: string): Integer; |
Возвращает индекс строки S в списке. Возвращает -1, если такой строки нет в списке. |
function Find(const S: string; var Index: Integer): Boolean; |
Используется только для отсортированных списков с включенным свойством Sorted. Ищет в списке строку S и возвращает true, если она существует. Индекс строки записывается в переменную Index. |
procedure Sort; |
Сортирует строки в списке |
procedure LoadFromFile(const AFileName: string; ACodepage: TM_FileCodePage); |
Загружает строки из файла AFileName (с кодировкой ACodepage) в список |
procedure SaveToFile(const AFileName: string; ACodepage: TM_FileCodePage); |
Сохраняет содержимое списка в файл AFileName с кодировкой ACodepage |
Свойство |
Описание |
---|---|
property Sorted: Boolean; |
Указывает, должны ли строки в списке автоматически сортироваться. |
property Duplicates: Byte; |
Используется только для отсортированных списков с включенным свойством Sorted. Указывает, можно ли добавлять повторяющиеся строки в список. Допустимые значения: dupIgnore - игнорировать повторяющиеся строки, dupAccept - разрешить повторяющиеся строки, dupError - выдать исключение при попытке добавить повторяющуюся строку. |
property CaseSensitive: Boolean; |
Определяет, следует ли сравнивать строки в списке с учетом регистра. По-умолчанию имеет значение false. |
property Items[Index: Integer]: string; |
Возвращает строку с индексом Index из списка. Например myList.Items[3] вернёт строку из списка с индексом 3. Это свойство по-умолчанию, поэтому можно использовать короткую запись, например: myList[3]. |
property Count: Integer; |
Возвращает количество строк в списке |
Пример использования
Допустим нам нужно создать список строк, добавлять в него строки и работать с ними. Тогда можно создать новый глобальный модуль и объявить в нем список:
interface
var
myList: TM_StringList; // объявляем список с именем myList
implementation
initialization // во время запуска проекта
myList := TM_StringList.Create; // создаём список
finalization // во время выключения проекта
FreeAndNil(myList); // !!! обязательно удаляем список
end.
Теперь список myList можно использовать в любом скрипте проекта.
Пример добавления строк в список
begin
myList.Add('привет'); // добавляем строку "привет" в список
myList.Add('мир'); // добавляем строку "мир" в список
end.
Пример поиска в списке
begin
if myList.IndexOf("привет") > -1 then
Log_Add('Строка "привет" есть в списке')
else
Log_Add('Строка "привет" не найдена списке');
end.
Пример перебора элементов списка
var
I: Integer;
begin
// проходим в цикле по всем элементам списка
for I := 0 to myList.Count - 1 do
begin
if myList[I] = "привет" then // если очередной элемент списка равен "привет", то
begin
// здесь выполняем какие-то действия
end;
end;
end.