Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
delphi / песни о паскале.pdf
Скачиваний:
64
Добавлен:
26.03.2016
Размер:
5.16 Mб
Скачать

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

Пространные пояснения излишни. Признак выполняемой операции формируется в булевой переменной Oper в третьей строке главной программы по цифре, введенной в переменную S. Значение Oper=TRUE влечет зашифровку файла, а FALSE — расшифровку. Затем в переменную S вводится имя обрабатываемого файла. В конце концов, вызывается процедура CryptFile с передачей в неё двух параметров: имени файла и признака выполняемой операции (aFile и aOper). Приставка «a» в начале имен этих параметров (префикс) помогает при чтении программы отличить параметр от других переменных.

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

}"Rtqi2420rcu"

xct"Ocp"<"uvtkpi=

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

rtqegfwtg"Rcwug=

dgikp

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

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

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

Итоги

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

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

Rewrite.

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

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

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

177

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

А слабо?

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

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

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

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

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

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

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

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

1

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

2

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

3

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

4

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

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

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

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

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

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

178

Соседние файлы в папке delphi