В этом уроке мы рассмотрим новый тип данных TStringList, который содержит в себе список строк типа string. Что такое TStringList и что такое «сложные» типы
Другими словами, TStringList — это массив строк, который имеет целый ряд различных возможностей, позволяющих производить различные операции над строками.
Однако использовать весь функционал типа TStringList мы еще не можем. Это еще одна особенность этих «сложных» типов. Запомните, прежде чем работать с объектами таких типов (т.е. прежде чем работать с переменной s (в нашем случае)), необходимо сначала их создать. В разделе Var мы только объявляем переменные, но не создаем. А вот создать переменную (объект) — это значит присвоить ей какое-либо начальное значение и подготовить ее к работе. Если создание переменной типа integer осуществляется обыкновенным присвоением ей числа, то создание объекта (переменной) типа TStringList будет выглядеть следующим образом:
«TStringList.Create» — это конструктор типа TStringList. Грубо говоря, это то, что нужно присвоить в качестве изначального значения новому экземпляру типа TStringList. И вот теперь уже доступны все возможности TStringList. Методы и параметры объектов типа TStringList
Методами объектов будем называть все процедуры и функции рассматриваемого типа объектов.
Как вы видите, у объекта типа TStringList существуют вложенные параметры и методы, и работать с последними можно также как и с параметрами и методами у обычных компонентов. На самом деле, разницы в устройстве между TButton (кнопкой) и TStringList нет. Их объединяет одно — что та кнопка, что TStringList являются обыкновенными объектами, просто эти объекты являются экземплярами разных типов (классов). Такие «сложные» типы, как TButton или TStringList грамотнее называть классами. Т.е. типы объектов, имеющие вложенные в них методы и параметры будем называть классами.
При этом создается новая строка, которая помещается сразу после предыдущих (если сортировка выключена). Как я уже и говорил, TStringList — это массив строк. И действительно — к каждой строке TStringList можно обратиться по индексу (исчисляются эти индексы с нуля):
Обращаться к несуществующему индексу нельзя, даже если вы хотите присвоить несуществующему индексу значение. Для удаления одной строки с определенными индексом можно использовать метод Delete. В качестве единственного параметра ему необходимо передать индекс удаляемой строки.
Метод Clear позволяет полностью удалять все строки. Параметров у него нет. Метод Count возвращает количество строк в объекте типа TStringList. Параметров ему тоже передавать не нужно.
Метод Find позволяет находить индекс Index указанной строки S. Возвращает в качестве результата True, если такая строка существует, или False, если такая строка не существует.
Метод IndexOf аналогичен методу Find, возвращает индекс искомой строки, или -1, если такой строки не существует. Метод Insert вставляет определенную строку с определенным индексом. Выглядит он следующим образом:
Метод Text не имеет никаких параметров. Он возвращает все строки целиком — в виде одной строки. В таком случае переводы между строками будут осуществляться символами с кодом #13, которые отображаются как переход на новую строку.
Метод LoadFromFile позволяет загрузить содержимое TStringList из файла. При этом каждая строка будет загружена по отдельности. Прежде чем загружать файл в TStringList, рекомендуется узнать существует ли он вообще. Делается это при помощи функции FileExists, которая возвращает true, если файл существует.
Для сохранения содержимого TStringList в файл используется функция SaveToFile, которой нужно передать путь сохранения файла. Если такой файл уже существует, то он будет автоматически перезаписан. Ну и напоследок, расскажу о методе Free. Служит этот метод для удаления самого объекта TStringList. При этом удалении происходит очистка оперативной памяти от содержимого удаляемого объекта. После такого удаления мы уже не сможем работать с самим объектом — только после того, как вновь его создадим. | |||||||||||||||||||||||
|
| |||||||||||||||||||||||
| Просмотров: 1578 | | |||||||||||||||||||||||
| Всего комментариев: 0 | |

