Работа с файлами
Тип-файл - последовательность компонент одного типа, расположенных на внешнем устройстве (например, на диске). Элементы могут быть любого типа, за исключением самого типа-файла. Число элементов в файле при описании не объявляется. Работа с физическими файлами происходит через файловые переменные. Для задания типа-файла следует использовать зарезервированные слова File и Of, затем указать тип компонент файла. Например: N = File Of Integer; {Тип-файл целых чисел} Есть заранее определенный в Pascal тип файла с именем Text. Файлы этого типа называют текстовыми. Введя файловый тип, можно определить и переменные файлового типа: F1: N; Тип-файл можно описать и непосредственно при введении файловых переменных: Var Файловые переменные имеют особое применение. Над ними нельзя выполнять никаких операций (присваивать значение, сравнивать и т.д.). Их можно использовать лишь для выполнения операций с файлами (чтение, запись и т.д.). Элементы файла считаются расположенными последовательно, т.е. так же, как элементы линейного массива. Отличие же состоит в том, что, во-первых, размеры файла могут меняться, во-вторых, способ обращения к элементам совсем другой: невозможно обратиться к произвольному элементу файла; элементы его просматриваются только подряд от начала к концу, при этом в каждый момент времени доступен только один элемент. Можно представить себе, что для каждого файла существует указатель, показывающий в данный момент на определенный компонент файла. После проведения операции чтения или записи указатель автоматически передвигается на следующий компонент. Перед тем, как осуществлять ввод-вывод, файловая переменная должна быть связана с конкретным внешним файлом при помощи процедуры Assign. Формат: Имя файла задается либо строковой константой, либо через переменную типа Sting. Имя файла должно соответствовать правилам работающей в данный момент операционной системы. Если строка имени пустая, то связь файловой переменной осуществляется со стандартным устройством ввода-вывода (как правило - с консолью). После этого файл может быть открыт одной из процедур: Rewrite(< Имя файловой переменной>); После работы с файлом он, как правило, должен быть закрыт процедурой Close. Close(< Имя файловой переменной>); Это требование обязательно должно соблюдаться для файла, в который производилась запись. Рассмотрим организацию чтения и записи. Для ввода информации из файла, открытого для чтения, используется уже знакомый вам оператор Read. Правда, в его формате и использовании Вы заметите некоторые изменения: Вывод информации производит оператор Write(< Имя файловой переменной>, < Список вывода>); Данные из списка вывода заносятся в файл, открытый для записи. Для текстовых файлов используются также операторы Readln и Writeln с соответствующими дополнениями, относящимися к файловому вводу-выводу. Интересно, что вывод данных на монитор и ввод с клавиатуры в Pascal тоже являются действиями с файлами. Они имеют свои предопределенные файловые переменные текстового типа: Output и Input соответственно. Переменная Output всегда открыта для записи, Input - для чтения. Если не указывать файловые переменные в операторах ввода-вывода, то в случае записи по умолчанию выбирается файл Output, в случае чтения - Input. Проверить, окончен ли файл, можно вызовом стандартной логической функции Eof(< Имя файловой переменной>). Она вырабатывает значение True, если файл окончен, и False - в противном случае. Пример 16: Ввести с клавиатуры список фамилий студентов, кроме тех студентов, у которых фамилия начинается с буквы 'Ш', а затем распечатать список. Так как заранее количество данных не известно, то для их хранения используем файл. Тип элементов - строковый. Program L; I, N: Integer; Begin Assign(F, 'Spis.lst'); {Связываем переменную F с файлом Spis.lst} Writeln('Введите фамилию'); End; Read(F, S); End; End.
Вопросы к зачету и экзамену по информатике 1. Понятие алгоритма, свойства алгоритма, этапы решения задач на ЭВМ. 2. Язык программирования Pascal; структура программы на Pascal. 3. Структуры данных в языке Pascal. 4. Среда программирования Pascal. 5. Лингвистические особенности языка Pascal. 6. Инструкция присваивания. Использование стандартных процедур и функций. 7. Инструкция присваивания. Действия (операции) с данными различных типов. 8. Ввод и вывод информации в текстовом режиме. 9. Алгоритмические структуры. Структура линейной программы. Решение вычислительных задач. 10. Процедуры модуля СRT: управление оформлением экрана; программирование звуков. 11. Графические операторы. Инициализация графики. Вывод простейших графических фигур (различие по цвету и стилю). 12. Графические операторы. Заполнение фигур, закрашенные фигуры (различие по цвету и стилю). 13. Ввод и вывод текстовой и числовой информации в графическом режиме (стили шрифта). 14. Алгоритмические структуры. Понятие условия. Ветвление в алгоритмах (язык схем) и программах. 15. Алгоритмические структуры. Оператор выбора. Запись диапазонов и списков значений в этом операторе. 16. Алгоритмические структуры. Циклы (3 вида циклических структур на языке схем и в программах). 17. Строковые и символьные переменные, основные процедуры и функции для работы с ними. 18. Подпрограммы и функции пользователя, их параметры (параметры- аргументы и параметры-результаты). 19. Сложные типы данных: массивы (определение, описание). 20. Сложные типы данных: массивы (типичные действия с массивами). 21. Использование массивов для графических построений (элементы мультипликации.) 22. Сложные типы данных: записи. 23. Сложные типы данных: множества. 24. Процедуры и функции 25. Работа с файлами. Обработка файлов. Элементы. Организация чтения и записи. 26. Указатели и динамическая память: a) ссылочные типы данных; b) выделение и освобождение динамической памяти; c) процедуры и функции, используемые при работе с указателями и динамической памятью. 27. Создание меню. 28. Модули (стандартные и пользователя). 29. Использование модуля Mouse. 30. Основные элементы программирования.
|