Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pesni_o_Paskale_2012-11-23.pdf
Скачиваний:
35
Добавлен:
19.03.2016
Размер:
5.16 Mб
Скачать

Глава 26 Я не читатель, — я писатель!

Полагаю, что пространные пояснения излишни. Признак выполняемой операции содержится в булевой переменной Oper. Она формируется в третьей строке главной программы по цифре, введенной пользователем в переменную S. Значение TRUE влечет зашифровку файла, а FALSE — расшифровку. Затем в переменную S вводится имя обрабатываемого файла. В конце концов вызывается процедура CryptFile с передачей в нее двух параметров: имени файла и признака выполняемой операции.

Полюбуйтесь, во что превратила эта программа один из файлов на Паскале (приведен небольшой фрагмент).

}"Rtqi2420rcu"

xct"Ocp"<"uvtkpi=

}///"░гьёднзпкз"▒т░шзжхтэ"///

rtqegfwtg"Rcwug=

dgikp

"""""Ytkvgnp*)Пвиокфз"Gpvgt<)+=""Tgcfnp=

Как говорится, родная мама не узнает! Все, что попадает в «мясорубку» нашего шифровальщика, обращается в фарш. Однако последующая расшифровка перемолотого файла в точности восстановила его.

Примененный нами метод шифрования не так уж крут, опытный взломщик легко раскроет его. Но фундамент заложен, и когда-нибудь вы придумаете изощренные методы шифрования. Например, ключ шифра можно сделать переменным и зависящим от номера символа в строке или файле. Подумайте над этим. Если же вы намерены заняться криптографией всерьез, изучайте математику! Для программиста это наука номер один.

Итоги

Для записи в текстовый файл, как и для чтения, требуется файловая переменная типа TEXT.

Перед записью в файл выполняют два действия: связывание переменной с файлом процедурой Assign и открытие файла для записи процедурой

Rewrite.

Вызов процедуры Rewrite либо создаёт новый файл, либо очищает существующий (вся бывшая в нем информация теряется!).

Запись отдельных строк в файл выполняют процедурой Writeln, первым параметром здесь указывают файловую переменную.

По окончании записи файл закрывают процедурой Close, — это гарантирует сохранение данных на диске.

177

Глава 26 Я не читатель, — я писатель!

А слабо?

А) Программа создает файл, печатает в него несколько строк с числами, а затем выводит этот файл на экран. Воспользуйтесь одной файловой переменной.

Б) Программа для нумерации строк файла. Строки исходного файла должны копироваться в конечный файл с добавлением перед каждой строкой её номера, например:

Исходный файл:

Влесу родилась елочка,

Влесу она росла.

Зимой и летом стройная,

Зеленая была.

Конечный файл:

1

Влесу родилась елочка,

2

Влесу она росла.

3

Зимой и летом стройная,

4

Зеленая была.

В) Скопировать один файл в другой:

с перестановкой местами четных и нечетных строк;

с перестановкой строк в обратном порядке (см. условие задачи «Е» к 25-й главе).

Г) Для передачи по интернету секретного текстового файла разбейте его на два других: в первый запишите нечетные строки исходного файла, а во второй — четные. Напишите для этого программу, или слабо?

Д) Создайте программу для объединения двух файлов (см. условие предыдущей задачи). Из первого составьте нечетные строки конечного файла, а из второго — четные.

178