
- •Ответы на вопросы
- •Основы визуального программирования. Понятие компонентов. Свойства компонента. Проектирование интерфейсных окон. Компиляция программ.
- •1.1. Краеугольные камни визуального программирования
- •1.3. Первый запуск среды Delphi
- •1.4. Исследуем среду разработки программ
- •Общие свойства компонентов
- •Понятие идентификатора. Зарезервированные (ключевые) слова. Стандартные идентификаторы. Идентификаторы программиста. Комментарии.
- •Комментарии
- •Понятие типа данных. Константы, переменные. Объявление типов, констант, переменных. Понятие типа данных
- •Константы
- •Переменные
- •. Определение новых типов данных
- •Простые типы данных (целочисленные, вещественные, символьные, булевые) Простые типы данных
- •2.3.1. Целочисленные типы данных
- •2.3.2. Вещественные типы данных
- •2.3.3. Символьные типы данных
- •2.3.4. Булевские типы данных
- •Перечисляемые и интервальные типы данных.
- •2.3.6. Перечисляемые типы данных
- •2.3.7. Интервальные типы данных
- •Выражения. Арифметические операции. Операции отношения. Булевские операции. Очередность выполнения операций.
- •2.4.1. Выражения
- •2.4.2. Арифметические операции
- •2.4.3. Операции отношения
- •2.4.4. Булевские операции
- •2.4.5. Операции с битами
- •2.4.6. Очередность выполнения операций
- •Операторы. Оператор присваивания. Оператор вызова процедуры. Составной оператор Операторы
- •2.7.1. Общие положения
- •2.7.2. Оператор присваивания
- •2.7.3. Оператор вызова процедуры
- •2.7.4. Составной оператор
- •Оператор ветвления if Оператор ветвления if
- •Оператор ветвления case . Оператор ветвления case
- •10 . Оператор повтора for.
- •11. Оператор повтора repeat
- •12. Оператор повтора while
- •13. Операторы Continue и Break
- •14. Подпрограммы. Стандартные подпрограммы.
- •2.8.1. Общие положения
- •2.8.2. Стандартные подпрограммы
- •15. Процедуры и функции программиста. Процедуры программиста
- •2.8.4. Функции программиста
- •16. Параметры процедур и функций. Структура модуля. Стандартные модули языка Delphi Параметры процедур и функций
- •Структура модуля
- •2.9.2. Стандартные модули языка Delphi
- •17. Область действия идентификаторов. Область действия идентификаторов
- •18. Строковые переменные. Операции над строками. Стандартные процедуры и функции для работы со строками. Строковые переменные
- •2.10.5. Операции над строками
- •Стандартные процедуры и функции для работы со строками
- •Массивы. Объявление массива. Работа с массивами. Динамические массивы Массивы
- •2.11.1. Объявление массива
- •2.11.2. Работа с массивами
- •Динамические массивы
- •Множества. Операции над множествами . Множества
- •2.12.1. Объявление множества
- •2.12.2. Операции над множествами
- •Записи. Записи
- •2.13.1. Объявление записи
- •2.13.2. Записи с вариантами
- •Файлы. Работа с файлами. Стандартные подпрограммы управления файлами
- •2.14. Файлы
- •2.14.1. Понятие файла
- •2.14.2. Работа с файлами
- •2.14.3. Стандартные подпрограммы управления файлами
- •Формула объекта. Три кита ооп
- •3.1. Краеугольные камни ооп
- •3.1.1. Формула объекта
- •3.1.5. Три кита ооп
- •Классы и объекты
- •3.2. Классы
- •3.3. Объекты
- •Конструкторы и деструкторы
- •3.4. Конструкторы и деструкторы
- •Методы классов
- •3.5. Методы
- •Свойства классов
- •3.6. Свойства
- •3.6.1. Понятие свойства
- •3.6.2. Методы получения и установки значений свойств
- •3.6.3. Свойства-массивы
- •3.6.4. Свойство-массив как основное свойство объекта
- •3.6.5. Методы, обслуживающие несколько свойств
- •28) Наследование
- •29) Перекрытие атрибутов в наследниках
- •30) Совместимость объектов различных классов
- •31) Понятие виртуального метода
- •32) Классы в программных модулях
- •33.Разграничение доступа к атрибутам объектов
- •34)Классы для представления списка строк
- •Свойства:
- •Методы:
- •События:
- •35. Классы для представления потока данных
- •Общие свойства:
- •Общие методы:
- •36. Обрабока исключительных ситуаций
- •4.3.1. Создание исключительной ситуации
- •4.3.2. Распознавание класса исключительной ситуации
- •4.3.3. Пример обработки исключительной ситуации
- •4.3.4. Возобновление исключительной ситуации
- •4.3.5. Доступ к объекту, описывающему исключительную ситуацию
- •37. .Защита выделенных ресурсов от пропадания
- •4.4.1. Утечка ресурсов и защита от нее
- •Сортировка массива методом прямого выбора
- •Сортировка массива методом прямого обмена (пузырьковым методом)
- •Сортировка массива методом прямого включения
- •Шейкерная сортировка
- •Сортировка массива с помощью включений с уменьшающимися расстояниями (метод Шелла)
- •Сортировка разделением (быстрая сортировка)
-
Файлы. Работа с файлами. Стандартные подпрограммы управления файлами
2.14. Файлы
2.14.1. Понятие файла
С точки зрения пользователя файл — это именованная область данных на диске или любом другом внешнем носителе. В программе файл предстает как последовательность элементов некоторого типа. Так как размер одного файла может превышать объем всей оперативной памяти компьютера, доступ к его элементам выполняется последовательно с помощью процедур чтения и записи.
Для файла существует понятие текущей позиции. Она показывает номер элемента, который будет прочитан или записан при очередном обращении к файлу. Чтение-запись каждого элемента продвигает текущую позицию на единицу вперед. Для большинства файлов можно менять текущую позицию чтения-записи, выполняя прямой доступ к его элементам.
В зависимости от типа элементов различают три вида файла:
-
файл из элементов фиксированного размера; элементами такого файла чаще всего являются записи;
-
файл из элементов переменного размера (нетипизированный файл); такой файл рассматривается просто как последовательность байтов;
-
текстовый файл; элементами такого файла являются текстовые строки.
Для работы с файлом в программе объявляется файловая переменная. В файловой переменной запоминается имя файла, режим доступа (например, только чтение), другие атрибуты. В зависимости от вида файла файловая переменная описывается по-разному.
Для работы с файлом, состоящим из типовых элементов переменная объявляется с помощью словосочетания file of, после которого записывается тип элемента:
var F: file of TPerson; |
К моменту такого объявления тип TPerson должен быть уже описан (см. выше).
Объявление переменной для работы с нетипизированным файлом выполняется с помощью отдельного слова file:
var F: file; |
Для работы с текстовым файлом переменная описывается с типом TextFile:
var F: TextFile; |
2.14.2. Работа с файлами
Наиболее часто приходится иметь дело с текстовым представлением информации, поэтому рассмотрим запись и чтение текстового файла.
Приступая к работе с файлом, нужно первым делом вызвать процедуру AssignFile, чтобы файловой переменной поставить в соответствие имя файла на диске:
AssignFile(F, 'MyFile.txt'); |
В результате этого действия поля файловой переменной F инициализируются начальными значениями. При этом в поле имени файла заносится строка 'MyFile.txt'.
Так как файла еще нет на диске, его нужно создать:
Rewrite(F); |
Теперь запишем в файл несколько строк текста. Это делается с помощью хорошо вам знакомых процедур Write и Writeln:
Writeln(F, 'Pi = ', Pi); Writeln(F, 'Exp = ', Exp(1)); |
При работе с файлами первый параметр этих процедур показывает, куда происходит вывод данных.
После работы файл должен быть закрыт:
CloseFile(F); |
Рассмотрим теперь, как прочитать содержимое текстового файла. После инициализации файловой переменной (AssignFile) файл открывается с помощью процедуры Reset:
Reset(F); |
Для чтения элементов используются процедуры Read и Readln, в которых первый параметр показывает, откуда происходит ввод данных. После работы файл закрывается. В качестве примера приведем программу, распечатывающую в своем окне содержимое текстового файла 'MyFile.txt':
program Console;
{$APPTYPE CONSOLE}
uses SysUtils;
var F: TextFile; S: string;
begin AssignFile(F, 'MyFile.txt'); Reset(F); while not Eof(F) do begin Readln(F, S); Writeln(S); end; CloseFile(F); Writeln('Press Enter to exit...'); Readln; end. |
Так как обычно размер файла заранее не известен, перед каждой операцией чтения вызывается функция Eof, которая возвращает True, если достигнут конец файла.
Внимание! Текстовые файлы можно открывать только для записи или только для чтения, но не для того и другого одновременно. Для того чтобы сначала записать текстовый файл, а потом прочитать, его нужно закрыть после записи и снова открыть, но уже только для чтения.