- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Контрольні питання
- •Контрольні питання
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.2: основні конструкції мови.
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.2: основні конструкції мови.
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.2: основні конструкції мови.
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.2: основні конструкції мови
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.2: основні конструкції мови
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.3: галуження і цикли
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.3: галуження і цикли
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.3: галуження і цикли
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.3: галуження і цикли
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.3: галуження і цикли
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.4: елементи інтерфейсу
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.5: основи створення прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.5: основи створення прикладних застосувань
- •План заняття
- •Контрольні питання
- •Контрольні питання:
- •Необхідні теоретичні відомості для практичної роботи:
- •Контрольні питання:
- •Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень
- •Тема 1.5: основи створення прикладних застосувань
- •План заняття
- •Проект Delphi
- •Модулей в проект.
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.1: основи мови object pascal
- •План заняття
- •Контрольні питання
- •Контрольні питання
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.1: основи мови object pascal
- •План заняття
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.1: основи мови object pascal
- •План заняття
- •Контрольні питання
- •Контрольні питання
- •Функции преобразования в числовой формат и обратно
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.1: основи мови object pascal
- •План заняття
- •7.1. Простые типы
- •Контрольні питання
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.2: графіка, мультимедія та друк
- •План заняття
- •Контрольні питання
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.2: графіка, мультимедія та друк
- •План заняття
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.2: графіка, мультимедія та друк
- •План заняття
- •Контрольні питання
- •Контрольні питання
- •Змістовий модуль 2: процедурно-орієнтоване програмування. Програмування графіки
- •Тема 2.2: графіка, мультимедія та друк
- •План заняття
- •Контрольні питання
- •Печать с помощью объекта Printer
- •Подготовка и печать отчетов с помощью QuickReport — компоненты QuickRep, qrSubDetail, qrLabel, qrExpr, qrSysData, qrMemo, qrRichText, qrShape, qrImage
- •Контрольні питання
- •Змістовий модуль 3: масиви. Записи та множини
- •Тема 3.1: масиви
- •План заняття
- •Листинг 1. Инициализация и вывод массива
- •Ввод массива
- •Использование компонента StringGrid
- •Листинг 2. Ввод и обработка массива целых чисел
- •Листинг 3. Процедура обработки события OnKeyPress
- •Листинг 4. Ввод и обработка массива дробных чисел
- •Контрольні питання
- •Объявление записи
- •Инструкция with
- •Ввод и вывод записей в файл
- •Вывод записи в файл
- •Листинг 25. Добавление записей в файл
- •Чтение записи из файла
- •Листинг 26. Чтение записей из файла
- •Контрольні питання
- •Змістовий модуль 3: масиви. Записи та множини
- •Тема 3.3: множини
- •План заняття
- •Контрольні питання
- •Необхідні теоретичні відомості для практичної роботи:
- •Контрольні питання:
- •Змістовий модуль 3: масиви. Записи та множини
- •Тема 3.4: множини обовязкова контрольна робота №28
- •Змістовий модуль 4: файлові структури даних. Динамічні структури даних
- •Тема 4.1: робота з файлами
- •План заняття
- •Объявление файла
- •Назначение файла
- •Вывод в файл
- •Открытие файла для вывода
- •Листинг 20. Создание нового или замещение существующего файла
- •Листинг 21. Добавление в существующий файл
- •Ошибки открытия файла
- •Закрытие файла
- •Пример программы
- •Листинг 22. Простая база данных (запись в файл)
- •Ввод из файла
- •Открытие файла
- •Листинг 23. Обработка ошибки открытия файла (фрагмент программы)
- •Чтение данных из файла
- •Чтение чисел
- •Чтение строк
- •Конец файла
- •Листинг 24.. Чтение из файла
- •Контрольні питання
- •Змістовий модуль 4: файлові структури даних. Динамічні структури даних
- •Тема 4.1: файлові структури даних. Динамічні структури даних
- •План заняття
- •Контрольні питання
- •Указатели
- •Динамические переменные
- •Листинг 27. Создание, использование и уничтожение динамических переменных
- •Листинг 28. Добавление элемента в начало динамического списка
- •Упорядоченный список
- •Добавление элемента в список
- •Листинг 29. Добавление элементов в упорядоченный список
- •Удаление элемента из списка
- •Листинг 30. Удаление узла из списка
- •Контрольні питання
- •Необхідні теоретичні відомості для практичної роботи:
- •Контрольні питання:
- •Необхідні теоретичні відомості для практичної роботи:
- •Контрольні питання:
- •Змістовий модуль 4: файлові структури даних. Динамічні структури даних
- •Тема 4.2: динамічні структури
- •План заняття
- •Вариантные переменные
- •Контрольні питання
- •Const-параметры
- •Контрольні питання
- •Змістовий модуль 4: файлові структури даних. Динамічні структури даних
- •Тема 4.2: динамічні структури
- •План заняття
- •Способы вызова подпрограмм
- •Контрольні питання
- •Этапы разработки программы
- •Спецификация
- •Создание установочного диска
- •Алгоритм и программа
- •Контрольні питання
- •Этапы разработки программы
- •Спецификация
- •Создание установочного диска
- •Алгоритм и программа
- •Контрольні питання
- •Контрольні питання
- •Необхідні теоретичні відомості для практичної роботи:
- •Контрольні питання:
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.2: Візуальні компоненти
- •План заняття
- •Контрольні питання
- •Распознавание источника события, нажатых кнопок и клавиш, координат курсора
- •События клавиатуры
- •Распознавание нажатых клавиш
- •Контрольні питання
- •Создание нового IntraWeb приложения
- •Редактирование главной формы
- •Написание обработчика события для кнопки
- •Запуск созданного приложения
- •Контрольні питання
- •Управляющие кнопки Button и BitBtn
- •Кнопка с фиксацией SpeedButton
- •Группы радиокнопок — компоненты RadioGroup, RadioButton и GroupBox
- •Контрольні питання
- •Листинг 28. Добавление элемента в начало динамического списка
- •Упорядоченный список
- •Добавление элемента в список
- •Листинг 29. Добавление элементов в упорядоченный список
- •Удаление элемента из списка
- •Листинг 30. Удаление узла из списка
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Упражнения. Совершенствование проекта
- •Контрольні питання:
- •Контрольні питання
- •Упражнения
- •Контрольні питання:
- •Змістовий модуль 6: програмування з графами. Вызуальны компоненти. Бази даних.
- •Тема 6.2: візуальні компоненти
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.3: форми та меню
- •План заняття
- •Контрольні питання
- •Контекстное всплывающее меню — компонент PopupMenu
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.4: обробка виключних ситуацій
- •План заняття
- •Конрольні питання
- •Упражнения. Совершенствование проекта.
- •Контрольні питання:
- •Змістовий модуль 6: програмування з графами
- •Тема 6.4: обробка виключних ситуацій
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питанна
- •Змістовий модуль 6: програмування з графами
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.5: організація прикладних застосувань
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.6: основи баз даних
- •План заняття
- •Классификация баз данных
- •Локальная база данных
- •Удаленная база данных
- •Структура базы данных
- •Контрольні питання
- •Контрольні питання
- •Упражнения
- •Контрольні питання:
- •Змістовий модуль 6: програмування з графами
- •Тема 6.6: основи баз даних
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.6: основи баз даних
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.6: основи баз даних
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.6: основи баз даних
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.6: основи баз даних
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.6: основи баз даних
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Insert into Имя таблицы
- •Insert into Имя_таблицы
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
- •Рисование круга
- •Контрольні питання
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи обов’язкова контрольна робота №63
- •Змістовий модуль 6: програмування з графами. Візуальні компоненти. Бази даних
- •Тема 6.7: навігація по набору даних. Мова sql. Створення довідкової системи
- •План заняття
Открытие файла для вывода
Перед выводом в файл его необходимо открыть. Если программа, формирующая выходной файл, уже использовалась, то возможно, что файл с результатами работы программы уже есть на диске. Поэтому программист должен решить, как поступить со старым файлом: заменить старые данные новыми или новые данные добавить к старым. Способ использования старого варианта определяется во время открытия файла.
Возможны следующие режимы открытия файла для записи в него данных:
перезапись (запись нового файла поверх существующего или создание нового файла);
добавление в существующий файл.
Для того чтобы открыть файл в режиме создания нового файла или замены существующего, необходимо вызвать процедуру Rewrite(f), где f — файловая переменная типа TextFile.
Для того чтобы открыть файл в режиме добавления к уже существующим данным, находящимся в этом файле, нужно вызвать процедуру Append (f), где f — файловая переменная типа TextFile.
На рис. 69. приведено диалоговое окно программы, которая выполняет запись или добавление в текстовый файл.
Рис. 69. Диалоговое окно программы записи-добавления в файл
В листинге 69. приведена процедура, которая запускается нажатием командной кнопки Записать. Она открывает файл в режиме создания нового или замещения существующего файла и записывает текст, находящийся в поле компонента Memo1.
Имя файла нужно ввести во время работы в поле Editl. Можно задать предопределенное имя файла во время разработки формы приложения. Для этого надо присвоить значение, например test.txt, свойству Edit1.Text.
Листинг 20. Создание нового или замещение существующего файла
procedure TForm1.Button1Click(Sender: TObject);
var
f: TextFile; // файл
fName: String[80]; // имя файла
i: integer;
begin
fName := Editl.Text;
AssignFile(f, fName);
Rewrite(f); // открыть для перезаписи
// запись в файл
for i: =0 to Memol.Lines.Count do // строки нумеруются с нуля
writeln(f, Memol.Lines[i]);
CloseFile(f); // закрыть файл
MessageDlg('Данные ЗАПИСАНЫ в файл ',mtlnformation,[mbOk],0);
end;
В листинге 21. приведена процедура, которая запускается нажатием командной кнопки Добавить. Она открывает файл, имя которого указано в поле Edit1, и добавляет в него содержимое поля Memol.
Листинг 21. Добавление в существующий файл
procedure TForm1.Button2Click(Sender: TObject);
var
f: TextFile; // файл
fName: String[80];.// имя файла
i: integer; begin
fName := Edit1.Text;
AssignFile(f, fName);
Append(f); // открыть для добавления
// запись в файл
for i:=0 to Memo1.Lines.Count do // строки нумеруются с нуля
writeln(f, Memo1.Lines[i]);
CloseFile(f); // закрыть файл
MessageDlg('Данные ДОБАВЛЕНЫ в файл ',mtInformation,[mbOk],0);
end;
Ошибки открытия файла
Попытка открыть файл может завершиться неудачей и вызвать ошибку времени выполнения программы. Причин неудачи при открытии файлов может быть несколько. Например, программа попытается открыть файл на гибком диске, который не готов к работе (не закрыта шторка накопителя, или диск не вставлен в накопитель). Другая причина — отсутствие открываемого в режиме добавления файла (файла нет — добавлять некуда).
При запуске программы из Delphi в случае ошибки во время открытия файла возникает исключение, и на экране появляется диалоговое окно с сообщением (рис. 70.).
Рис. 70. Пример сообщения об ошибке открытия файла (программа запущена из Delphi)
Если программа запускается из Windows, то окно с сообщением об ошибке выглядит иначе (рис. 71.).
Рис. 71. Пример сообщения об ошибке открытия файла . (программа запущена из Windows)
Программа может взять на себя задачу контроля за результатом выполнения инструкции открытия файла. Сделать это можно, проверив значение функции IOResult (input-Output Result — результат ввода/вывода). Функция IOResuit возвращает 0, если операция ввода/вывода завершилась успешно; в противном случае — код ошибки (не ноль).
Для того чтобы программа смогла проверить результат выполнения операции ввода/вывода, нужно разрешить ей это делать. Для этого надо перед инструкцией вызова процедуры открытия файла поместить директиву компилятору — строку {$I-}, которая запрещает автоматическую обработку ошибок ввода/вывода. Эта директива сообщает компилятору, что программа берет на себя контроль ошибок. После инструкции открытия файла следует поместить директиву {$I+}, восстанавливающую режим автоматической обработки ошибок ввода/вывода.
На рис. 72. приведена блок-схема алгоритма открытия файла для добавления, обеспечивающего создание файла (и тем самым устраняющего ошибку, возникающую при попытке открыть несуществующий файл) в случае, если открываемого для добавления файла на диске еще нет.
Рис. 72. Алгоритм открытия файла с обработкой возможной ошибки
Ниже приведен фрагмент программы, реализующий приведенный выше алгоритм открытия файла.
AssignFile(f,filename);
{$I-}
Append(f) // открыть для добавления
{$I+}
if IOResult<> 0 // ошибка открытия
then Rewrite(f); // открыть для записи
// здесь открыт существующий или новый файл