Пожалуйста, включите JavaScript для просмотра этого сайта.

Скрипты Simple-Scada

История: Классы > Списки

Список строк (TM_StringList)

Пред. Вверх След. Еще

Класс 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.