Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод2курс_прогр_конт.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.38 Mб
Скачать

3.Общая характеристика списков

Простой и комбинированный список во многом похожи друг на друга и имеют много свойств, методов и событий. Основным для списков является свойство Items, в свою очередь, содержащее большое число свойств и мето­дов, ориентированных на работу со строками.

Свойство Items типа Tstrings представляет собой массив строк и определя­ет количество элементов списка и их содержимое. Класс Tstrings является базовым типом и разработан специально для операций со строками.

Каждый элемент списка является строкой, к которой можно получить дос­туп по ее номеру в массиве строк items. Отсчет элементов списка начинает­ся с нуля. Для обращения к первому элементу нужно указать items[0], ко второму — items[1], к третьему — items [2] и т. д. При операциях с отдельными строками программист должен контролировать номера строк в списке и не допускать обращения к несуществующему элементу.

Свойство Сount типа integer задает число элементов в списке. Так как пер­вый элемент списка имеет нулевой номер, то номер последнего элемента равен count-1.

Пример: Присваивание элементам списка ListBox1 новых значений.

var n: integer;

...

for n:=0 to ListBoxi.Items.Count - 1 do

ListBox1.Items[n]:='Строка номер '+IntToStr(n);

Методы Add и Insert обеспечивают добавление строк в список.

Функция Add (const S: string): Integer добавляет в конец списка строку, заданную параметром s, а в качестве результата возвращает положение нового элемента в списке.

Процедура Insert (Index: Integer; const S: String) вставляет строку S на позицию с номером, определяемым параметром Index. При этом элемен­ты списка, находившиеся до операции вставки в указанной позиции и ни­же, смещаются вниз.

Пример. Добавление к комбинированному списку ComboBoxl строки «Нажата кнопка Buttonl».

procedure TForml.ButtonlClicklSender: TObject);

begin

ComboBoxl.Items.Add(‘Нажата кнопка Buttonl’);

end;

В процессе создания приложений периодически необходимо, чтобы один список содержал те же данные, что и другой. Достаточно просто согласова­ние списков можно выполнить с использованием методов AddStrings и Assign. Оба метода позволяют при одном вызове увеличить содержимое списка более, чем на один элемент. Проверить необходимость выполнения операции согласования списков можно с помощью метода Equals.

Процедура AddStrings (strings: Tstrings) добавляет в конец списка группу строк, описываемую параметром strings.

Процедура Assign (Source: TPersistent) присваивает один объект другому, при этом объекты должны иметь совместимые типы. Применительно к спи­скам в результате выполнения процедуры происходит копирование информа­ции из одного списка в другой с заменой содержимого. Если размеры списков (число элементов) не совпадают, то после замены число элементов заменяе­мого списка становится равным числу элементов копируемого списка.

Функция Equals (Strings: TStrings): Boolean используется для определения, содержат ли два списка строк одинаковую текстовую информацию. Если содержимое списков совпадает, то функция возвращает значение True, в противном случае — значение False. Содержимое списков одинаково, ес­ли списки равны по длине, и совпадают все их элементы.

Для удаления элементов списка используются методы Delete и clear.

Процедура Delete (index: integer) удаляет элемент с номером, заданным параметром index. При попытке удаления несуществующей строки сообще­ние об ошибке не выдается, но метод Delete не срабатывает.

Процедура Clear очищает список, удаляя все его элементы.

Пример. ComboBoxl.Items.Clear;

Процедура Move (CurIndex, NewIndex: integer) сдвигает элемент на по­зиции c номером Curindex в новую позицию с номером Newindex. Если указанный номер больше, чем есть элементов в списке, то возникает ошибка.

Выполнить поиск элемента в списке можно с помощью метода IndexOf.

Процедура IndexOf (const S: string): integer определяет, содержится ли в списке строка s. В случае успешного поиска процедура возвращает но­мер позиции найденной строки в списке, если строковый элемент не най­ден, то возвращается значение -1.

Класс TStrings имеет методы SaveToFile и LoadFromFile, позволяющие непосредственно работать с текстовыми файлами. Эти методы предоставля­ют возможность сохранения строк списка в текстовом файле на диске и по­следующего чтения списка строк из текстового файла. Символы текстового файла кодируются в коде ANSI.

Пример. Процедура сохранения содержимого списка.

ListBox3. Items. SaveToFile('c:\firma\family.txt’);

Процедура LoadFromFile (const FileName: string) заполняет список содержимым указанного текстового файла, предыдущее содержимое списка очищается. Если заданный файл отсутствует на диске, то возникает ошибка при выполнении приложения.

Пример. Загрузка содержимого списка.

procedure TForml.FormCreate(Sender: TObject);

begin

ComboBox2.Items.LoadFromFile('С:\TEXT\personal.txt');

end;

При конструировании приложения изменение списка строк выполняется с помощью редактора String List editor (Строковый редактор). Вы­зов строкового редактора выполняется через Инспектор объектов двойным щелчком кнопкой мыши в области значения свойства Items типа TStrings.

Строковый редактор позволяет добавлять строки в список, удалять их из списка и изменять содержимое имеющихся строк.