Б) Напишите программу для вывода на экран файла, имя которого задается с клавиатуры.

В) Напишите три функции для подсчета:

• строк в файле;

• видимых символов в файле;

• всех символов файла (фактический объём файла).

Функции принимают один параметр – ссылку на файловую переменную. Напишите программу, определяющую упомянутые характеристики файла.

Г) Объявите две файловые переменные, свяжите их с одним и тем же файлом, а затем откройте через обе переменные. Вызовет ли это ошибку? Объясните результат, исходя из здравого смысла.

Д) Усовершенствуйте программу «вопрос-ответ» (глава 16) с тем, чтобы ответы хранились не в программе, а в отдельном текстовом файле. Тогда пользователи программы сами смогут сочинять ответы.

Е) Напишите процедуру для вывода на экран N–й строки файла, где N – параметр процедуры. Воспользовавшись этой процедурой, напишите программу для распечатки строк файла в обратном порядке. Подсказка: предварительно посчитайте количество строк в файле.

Глава 26

Я не читатель, – я писатель!

Наш шпионский проект по шифрованию файла подвигается к финишу. Ступим завершающий шаг: освоим запись в текстовый файл.

Запись в текстовый файл

Порядок записи в текстовый файл схож с его чтением, судите сами:

• для доступа к файлу используют файловую переменную типа TEXT;

• файловую переменную надо связать с файлом процедурой Assign;

• по окончании записи файл закрывают процедурой Close.

Вот схема, где отражены четыре этапа записи в файл (рис. 56).

Рис.56 – Четыре этапа записи в файл

Как видите, запись в файл отличается от чтения вторым и третьим этапами, ими и займемся.

Итак, после привязки файла процедурой Assign, файл открывают для записи процедурой Rewrite – «перезапись».

      Rewrite(F);

Тут находим первое отличие: если для чтения требуемый файл должен существовать, то для записи этого не нужно. Если файла ещё нет, будет создан новый пустой файл. А при наличии файла он будет очищен, и вся информация в нём сотрется, как мел с доски. Будьте внимательны, иначе лишитесь нужной информации!

В открытый таким образом файл можно «печатать» нужные нам строки. Как? Вы уже знаете – процедурой Writeln. А что указать первым параметром? Правильно, – файловую переменную, вот так:

      Writeln(F, S); { F – переменная типа TEXT, S – строковая }

Каждый вызов такой процедуры добавляет в конец файла очередную строку с разделителями. В отличие от чтения, где надо следить за достижением конца файла, при записи вы ограничены лишь объёмом винчестера и здравым смыслом (в большей степени последним).

По окончании записи файл закрывают все той же процедурой Close. Как и при чтении, закрытие файла освобождает выделенную для него память и снимает блокировку файла, позволяя другим программам работать с ним. К тому же закрытие файла гарантирует сохранение записанных данных на

Вы читаете Песни о Паскале
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату