- •Сборник МетодическиХ указаниЙ по выполнению лабораторных работ
- •Информатика
- •Введение. Назначение Delphi и его особенности
- •Начало работы
- •Меню и команды Delphi
- •Полоска кнопок быстрого доступа SpeedBar
- •Локальные меню SpeedMenu
- •Работа с формами
- •Палитра компонентов
- •Система подсказок
- •Навигатор кода
- •Написание кода
- •Справочная система
- •Структура проекта
- •Окончательная настройка приложения
- •Событие и процедура обработки события
- •Запуск программы
- •Предупреждения и подсказки
- •Ошибки времени выполнения
- •Компиляция
- •Отладка программы
- •Файлы, создаваемые системой
- •Репозиторий объектов и его страницы
- •Тула 2014 г.
- •Создание приложения в среде разработки Delphi
- •Первый проект
- •Компоненты
- •Начальные сведения о программах на языке Pascal
- •Комментарии
- •Директивы компилятора
- •Идентификаторы
- •Переменные и типы данных
- •Константы
- •Неименованные константы
- •Нетипизированные константы
- •Типизированные константы
- •Простейшие операторы
- •1. Простейшие арифметические и логические операции
- •2. Линейные программы
- •Тула 2014 г.
- •Сущность задач с ветвлениями
- •Логический тип данных
- •Организация ветвлений
- •Объединение операторов
- •Сложные условия
- •Множественное ветвление
- •Применение оператора-переключателя Case
- •Тула 2014 г.
- •Сущность задач с циклами
- •Цикл с предусловием
- •Вечный цикл
- •Цикл с постусловием
- •Цикл с переменной
- •Дополнительные операторы управления циклами
- •Вложенные циклы
- •Инструкция goto
- •1. Циклические программы
- •2. Задачи, решаемые методом перебора.
- •Тула 2014 г.
- •Статические массивы
- •Многомерные статические массивы
- •Ввод-вывод массивов
- •Считывание массива из файла
- •Поиск максимума и минимума
- •Пример программы
- •Динамические массивы
- •Создание динамических массивов
- •Многомерные динамические массивы
- •1. Одномерные массивы
- •2. Двумерные массивы
- •Тула 2014 г.
- •Процедуры и функции
- •Что такое функция?
- •Функция: туда и обратно
- •Процедуры
- •Передача данных в процедуры
- •Вложенные процедуры и функции
- •Тула 2014 г.
- •Символьный тип
- •Символ-константа и строка-константа Неименованные константы
- •Нетипизированные константы
- •Типизированные константы
- •Действия с символами Операции
- •Стандартные функции и процедуры обработки строк
- •Операции со строками Сравнения
- •Обращение к компонентам строки
- •Конкатенация
- •Удаление символов в строке
- •Определение позиции подстроки
- •Выделение подстроки
- •Множества
- •Описание множеств
- •Множество-константа Неименованная константа
- •Нетипизированная константа
- •Типизированная константа
- •Операции с множествами
- •Представление множеств массивами
- •Представление множеств линейными массивами
- •Представление множеств битовыми массивами
- •1. Строковый тип данных
- •2. Типы данных «множество» и «запись»
- •Тула 2014 г.
- •Введение
- •Что такое файл?
- •Когда нужно использовать файлы
- •Разновидности файлов
- •Описание файлов
- •Текстовые файлы
- •Оперирование файлами
- •Назначение файла
- •Открытие файла
- •Закрытие файла
- •Считывание из файла
- •Запись в файл
- •Пробельные символы
- •Пример использования файлов
- •Изменение реакции на ошибку
- •Бинарные файлы
- •Типизированные файлы
- •Нетипизированные файлы
- •Подпрограммы обработки директорий
- •Применимость подпрограмм обработки файлов
- •Индивидуальные задания
- •Свойства в Delphi
- •Вложенных свойств
- •Управление свойствами визуальных компонент в режиме выполнения
- •Программа shapedem2
- •Тула 2014 г.
- •Графические компоненты
- •Построение графиков с помощью компонентной технологии
- •Тула 2014 г.
- •Создание меню
- •Использование компонента tTimer
- •Тула 2014 г.
- •Работа с компонентом RichEdit
- •Тула 2014 г.
- •Тула 2014 г.
- •Что такое мультимедиа
- •Мультимедиа в Delphi
- •Компонент tMediaPlayer
- •Два вида программ мультимедиа
- •Пример программы с мультимедиа
Нетипизированные файлы
Главное преимущество нетипизированных файлов - это высокая скорость их обработки. Открыть как нетипизированный можно и файл любой другой природы: текстовый или бинарный типизированный. В основном это применяется в тех случаях, когда нужно перекопировать довольно большой кусок одного файла в другой без изменений.
Описание нетипизированных файлов
В разделе var файловые переменные, предназначенные для работы с нетипизированными файлами, описываются следующим образом:
var g: file;
Никакая файловая переменная не может быть задана константой.
Назначение нетипизированного файла
Содержимое этого раздела дословно повторяет все сказанное в разделе "Назначение типизированного файла".
Открытие и закрытие нетипизированного файла
В зависимости от того, какие действия ваша программа собирается производить с открываемым файлом, возможно двоякое его открытие:
reset(f[,size]); - открытие файла для считывания из него информации и одновременно для записи в него (если такого файла не существует, попытка открытия вызовет ошибку). Эта же команда служит для возвращения указателя на начало файла;
rewrite(f[,size]); - открытие файла для записи в него информации; если такого файла не существует, он будет создан; если файл с таким именем уже есть, вся содержавшаяся в нем ранее информация исчезнет.
Необязательная переменная size может задать количество байтов, единовременно считываемых из нетипизированного файла или записываемых в него. По умолчанию размер таких "кусков" принимается равным 128 байт.
Закрываются нетипизированные файлы процедурой close(f), общей для всех типов файлов.
Поиск в нетипизированном файле
Все подпрограммы, описанные в разделе "Поиск в типизированном файле", будут работать и для нетипизированного файла. Но, поскольку тип элементов нетипизированного файла не определен, то размер одного "элемента" принимается равным 128 байт (по умолчанию) или указанному в переменной size во время открытия файла.
Запись и чтение
Для осуществления записи в нетипизированный файл и считывания из него применяются две специальные процедуры blockread() и blockwrite().
Процедура blockread(f:file; buf,count:word [;result:word]) предназначена для считывания из файла f нескольких элементов разом (их количество указывается в переменной count, а длина устанавливается во время открытия файла) при помощи буфера обмена данными buf. Необязательная переменная result может хранить количество элементов, фактически считанных из файла.
Процедура blockwrite(f:file; buf,count:word [;result:word]) производит запись данных в нетипизированный файл при помощи буфера buf.
Подпрограммы обработки директорий
Приведем здесь также несколько стандартных процедур, осуществляющих работу с директориями, а также с файлами, но внешним относительно самих файлов образом (без их открытия).
Процедура erase(f: file) удалит файл, связанный с файловой переменной f. Если такого файла нет, произойдет ошибка, реакцию на которую можно отрегулировать при помощи директивы компилятора {$I} (см. лекцию 6).
Процедура rename(f: file; s: string) даст файлу, связанному с файловой переменной f, новое имя, указанное в строке s. Если такого файла нет, произойдет ошибка.
Процедура chdir(s: string) сделает текущей директорию, указанную в строке s. Если такой директории нет, произойдет ошибка.
Процедура getdir(disk: byte; s:string) запишет в строку s имя текущей директории на указанном диске (0 - текущий диск, 1 - диск А , 2 - диск В и т.д.).
Процедура mkdir(s: string) создаст в текущей директории новую поддиректорию с указанным в строке s именем. Если в текущей директории уже существуют файл или директория с указанным именем, произойдет ошибка.
Процедура rmdir(s: string) удалит пустую директорию с заданным в строке s именем. Если такой директории нет, произойдет ошибка.
