- •Программирование на языке
- •Object pascal в среде delphi
- •(Лабораторные работы)
- •Содержание
- •Лабораторная работа 1. Программирование линейных алгоритмов
- •1.1. Базовые элементы языка Object Pascal
- •1.1.1. Алфавит языка
- •1.1.2. Синтаксис языка
- •1.1.3. Основные типы данных
- •1.1.4. Оператор присваивания
- •1.1.5. Целые типы данных
- •1.1.6. Вещественные (действительные) типы данных
- •1.1.8. Cимвольные типы данных
- •1.1.9. Строкоые типы данных
- •1.1.10. Арифметические вычисления
- •1.2. Интегрированная среда разработчика delphi
- •1.3. Структура программ delphi
- •Interface
- •Implementation
- •1.4. Пример написания программы
- •1.4.2. Изменение заголовка формы
- •1.4.6. Написание программы обработки события
- •1.4.7. Написание программы обработки события
- •2.3. Оператор выбора Case
- •2.4. Составной оператор
- •2.5. Некоторые возможности, предоставляемые Delphi для организации разветвлений
- •Interface
- •Implementation
- •2.7. Индивидуальные задания
- •3.1.2. Организация цикла с помощью оператора repeat
- •3.2. Организация вложенных циклов
- •3.3. Организация прерывания цикла
- •3.4. Алгоритмы, использующие рекуррентную последовательность
- •3.5. Пример написания программы
- •Interface
- •Implementation
- •3.6. Индивидуальные задания
- •Лабораторная работа 4. Программирование с использованием массивов
- •4.1. Работа с массивами
- •4.2. Операции над массивами
- •4.3. Примеры часто встречающихся алгоритмов работы с массивами
- •4.4. Компонент tStringGrid для ввода/вывода массивов
- •4.5. Пример написания программы с использованием tStringGrid
- •Interface
- •Implementation
- •4.6. Компонент tEdit для ввода одномерных массивов
- •4.7. Пример написания программы с использованием tEdit
- •4.7. Компонент tMemo для ввода/вывода одномерных массивов
- •4.8. Пример написания программы с использованием tMemo
- •4.9. Индивидуальные задания
- •Лабораторная работа 5. Программирование с использованием строковых данных
- •5.1. Работа со строками
- •5.2. Пример написания программы
- •Лабораторная работа 6. Программирование с использованием подпрограмм и модулей
- •6.1. Описание подпрограмм
- •6.2. Передача данных через формальные параметры
- •6.3. Процедурные типы
- •6.4. Область видимости переменных
- •6.5. Пример написания программы с использованием процедур
- •Interface
- •Implementation
- •6.6. Использование модулей
- •6.7. Пример написания программы с использованием модуля
- •6.7.1. Создание модуля
- •6.7.2. Подключение модуля
- •Implementation
- •6.8. Индивидуальные задания
- •Лабораторная работа 7. Построение графиков
- •7.1. Компонент tChart
- •7.2. Пример написания программы
- •7.4. Индивидуальные задания
- •Лабораторная работа 8. Работа с файлами
- •8.2. Прямая работа с файлами (классический способ)
- •Доступ к файлам
- •Подпрограммы для работы с файлами
- •Запись и чтение типизированных файлов
- •Запись и чтение нетипизированных файлов
- •8.3. Диалоги открытия и сохранения файлов
- •8.4. Пример написания программы
- •8.5. Индивидуальные задания
- •Средства отладки программ в delphi
- •Литература
Лабораторная работа 8. Работа с файлами
Под файлом понимается именованнаяобласть внешней памяти компьютера.
Любой файл имеет три характерные особенности:
1. Файл имеет имя, что дает возможность программе работать одновременно с несколькими файлами;
2. Файл содержит компоненты одного типа;
3. Длина создаваемого файла не оговаривается при его объявлении и ограничивается только размером устройств внешней памяти.
Работа с файлами важная вещь в любом языке программирования. Работа с файлами в Delphi позволяет считывать, сохранять информацию, и выполнять другие действия с файлами. В Delphi поддерживаются все операции с файлами - создание, поиск, чтение и запись, переименование как файлов, так и к директорий. В Delphi существует несколько способов работы с файлами.
Работать с файлами в Delphi можно как с помощью компонентов, которые имеют свойства и методы такой работы, так и напрямую с помощью процедур и функий Object Pascal`я.
8.1. Компоненты для работы с файлами в Delphi
Сначала рассмотрим компоненты Delphi, которые умеют работать с файлами. Они читают и сохраняют своё содержимое, строки типа String, в файл текстового формата. Это компоненты TStringList, TListBox, TComboBox и TMemo, расположенные на первой вкладке палитры компонентов. Содержимое этих компонентов очень легко записать в файл с помощью только одной команды, а также считать из файла тоже с помощью одной команды. Каждая строка компонентов TListBox и TComboBox является объектом Items[i], а TMemo - Lines[i], где i - номер строки, который отсчитывается от нуля. Добавление строк в компоненты выполняется методами Add и Insert: begin Memo1.Lines.Add('Первая строка'); ComboBox1.Items.Add('Первая строка'); ComboBox1.Items.Add('Вторая строка'); ListBox1.Items.Add('Первая строка'); ListBox1.Items.Add('Вторая строка'); end ; Метод Add добавляет новую строку в конец. Метод Insert имеет дополнительный параметр, указывающий, после какой строки разместить новую строку. Доступ к строкам осуществляется так: ComboBox1.Items[0] := 'Первая строка изменилась' ; ListBox1.Items[1] := 'Вторая строка изменилась' ;
У компонентов TComboBox и TMemo дополнительно есть свойство Text, где (как и у компонента Edit) находится вводимый текст: ComboBox1.Text := ' Вводимый текст ';
Memo1.Text := 'Новый текст'; На выделенную в данный момент строку компонента TComboBox указывает свойство ItemIndex типа Integer, т.е. это номер выделенной строки. Следовательно, получить саму выделенную строку компонента ComboBox можно следующей конструкцией: S:=ComboBox1.Items[ComboBox1.ItemIndex]; или, пользуясь оператором присоединения With ComboBox1 do S:=Items[ItemIndex];
Впрочем, чтобы стереть всё сразу, есть метод Clear во всех этих компонентах. Ну а теперь собственно о сохранении содержимого в файл. Для этого выполните команду ListBox1.Items.SaveToFile(' Имя_файла.txt ') ; Расширение можно поставить любое по желанию, не обязательно .txt, как и вообще без него обойтись. Но расширение .txt позволит легко открыть файл стандартным виндовским Блокнотом, что бывает очень удобно на этапе написания программы! Для загрузки из файла служит метод LoadFromFile: ListBox1.Items.LoadFromFile(' Имя_файла.txt ') ; Что делать, если в своей программе мы не работаем с компонентами Combobox, ListBox или Memo, а сохранять информацию нужно? Все очень просто - берём один из компонентов и делаем его невидимым, для этого в Инспекторе Объектов ставим в свойство Visible значение False. Функциональность его от этого не изменится, а дальше с ним работаем как обычно. В конце работы с файлами этот компонент можно удалить.