Put #1, nmax, MyRecord ' переписываем информацию о ветеране



Close #1 ' Закрываем файл

End Sub

После выполнения процедуры повторите вызов FileInTable на чистом листе и сравните таблицы. Проверьте, как изменится результат, если в Put опустить позицию nmax.

4. Добавление в файл произвольного доступа осуществляется записью в позицию за концом файла. Например, в файле 10 записей, чтобы добавить новую запись необходимо записать в позицию 11. Сложнее обстоит дело с удалением записей. Как правило, для этого переписывают все нужные записи в новый файл. Используя Kill, удаляют исходный файл и переименовывают новый, используя Name As. Напишите программу увольнения всех сотрудников, работающих по совместительству.

5. Самостоятельно напишите программу просмотра записей своей базы данных в форме, созданной ранее, без  занесения информации в лист Excel. Решите задачу поиска и модификации записи файла с использованием формы.

6. Рассмотрим еще один тип доступа к файлам - двоичный. Этот доступ используется для чтения и записи каждой позиции байта в файле. Открывается файл для двоичного доступа с параметром Binary. При этом можно, как и в файле с произвольным доступом и писать, и читать одновременно. Запись осуществляется функцией Put, а чтение - Get. Разница между произвольным и двоичным файлами в способе интерпретации информации - в первом случае это, как правило, структурированная запись, а во втором случае - набор неинтерпретируемых байт. Есть задачи, в которых нам не нужна интерпретация, например, задачи шифровки. Самый простой способ зашифровать файл - увеличить каждый элемент (байт) на некоторое число X[7].

Sub Шифровка()

Dim i As Integer, j As Byte, x As Integer

x = InputBox("Введите код шифровки")

Open "exampl.txt" For Binary As #1

Open "exampl2.txt" For Binary As #2

Открываем файл на чтение и присваиваем ему номер 1

For i = 1 To LOF(1) ' Повторяем, пока не конец файла[8]

Get #1, , j

   j = ((j + x) Mod 256)

Put #2, , j

Next i

Close #1 ' Закрываем файл

Close #2 ' Закрываем файл

End Sub

Файл может быть текстовый или любого другого типа. Посмотрите в блокноте результат шифровки. Самостоятельно напишите процедуру дешифровки.

7. Представленный метод шифровки требует двух процедур - шифровки и дешифровки. Есть более простой способ с использованием операции Xor (исключающего или). Двойное применение этой операции к значению возвращает исходное значение. Заменим «j = ((j + x) Mod 256)» на «j = j Xor x». Применим 1 раз шифровку. Посмотрим результат, а затем к нему еще раз применим шифровку. Что получилось?

8. Описанные методы шифровки очень просты, и их легко взломать, посчитав частоту появления символов в тексте. Большей надежностью обладает метод, когда в качестве ключа к шифру задается некоторый вектор из чисел. Тогда первый байт меняется с использованием первого элемента вектора, второй - со вторым и т.д. Когда вектор закончится, для изменения очередного байта вновь берется первый элемент вектора. И так до конца файла. Самостоятельно напишите программу, которая реализует векторную шифровку и дешифровку.

 


[1] Разная длина компонент - их главный недостаток при обработке и главное достоинство при хранении (компактность).

[2] На самом деле открыть можно, но в редакторе будет представлена тарабарщина и псевдографика.

[3] См. практическую работу № 8

[4] Помните, что при любой операции чтения/записи позиция файла увеличивается на 1!

[5] Она может быть опущена - тогда из текущей позиции.

[6] См. практическую работу № 8

[7] Если полученное число превышает 1 байт, то возьмем остаток от деления на 256

[8] LOF - возвращает количество байт в файле


Дата добавления: 2018-08-06; просмотров: 259; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!