Песни о Паскале | страница 93
Глава 26
Я не читатель, – я писатель!
Наш шпионский проект по шифрованию файла подвигается к финишу. Ступим завершающий шаг: освоим запись в текстовый файл.
Порядок записи в текстовый файл схож с его чтением, судите сами:
• для доступа к файлу используют файловую переменную типа TEXT;
• файловую переменную надо связать с файлом процедурой Assign;
• по окончании записи файл закрывают процедурой Close.
Вот схема, где отражены четыре этапа записи в файл (рис. 56).
Как видите, запись в файл отличается от чтения вторым и третьим этапами, ими и займемся.
Итак, после привязки файла процедурой Assign, файл открывают для записи процедурой Rewrite – «перезапись».
> Rewrite(F);
Тут находим первое отличие: если для чтения требуемый файл должен существовать, то для записи этого не нужно. Если файла ещё нет, будет создан новый пустой файл. А при наличии файла он будет очищен, и вся информация в нём сотрется, как мел с доски. Будьте внимательны, иначе лишитесь нужной информации!
В открытый таким образом файл можно «печатать» нужные нам строки. Как? Вы уже знаете – процедурой Writeln. А что указать первым параметром? Правильно, – файловую переменную, вот так:
> Writeln(F, S); { F – переменная типа TEXT, S – строковая }
Каждый вызов такой процедуры добавляет в конец файла очередную строку с разделителями. В отличие от чтения, где надо следить за достижением конца файла, при записи вы ограничены лишь объёмом винчестера и здравым смыслом (в большей степени последним).
По окончании записи файл закрывают все той же процедурой Close. Как и при чтении, закрытие файла освобождает выделенную для него память и снимает блокировку файла, позволяя другим программам работать с ним. К тому же закрытие файла гарантирует сохранение записанных данных на диске.
Рассмотрим небольшой пример: заполнение файла числами от 1 до 10.
>{ P_26_1 }
>var F: text; { файловая переменная }
> k: integer;
>begin
> Assign(F, 'P_26_1.txt'); { назначаем имя файла }
> Rewrite(F); { открываем файл для записи }
> for k:=1 to 10 do { записать 10 строк с числами }
> Writeln(F, k);
> Close(F); { закрываем файл }
>end.
Есть вопросы? Запустите программу и проверьте, работает ли она. Запустили? Теперь отыщите в папке с программой файл «P_26_1.TXT» и откройте его любым редактором. Уверен, что вы обнаружите в нём столбик из десяти чисел.