Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2009, 16:56   #1
Tycuk
 
Регистрация: 26.12.2009
Сообщений: 9
По умолчанию зашифровать файл

Считать байты в файле в виде массива mas[i], создать новый файл, в который записали переставленные местами байты из первого файла.

program xjkfd;
var
F, F1: file of byte;
mas: array[1..4] of byte;
z: array[1..4] of byte;
i: integer;
begin

assign(F, 'c:\in.jpg');
assign(F1, 'c:\code.jpg');
reset(F);
rewrite(F1);

while not eof(f) do
begin

read(F, mas[4]);
z[1]:= mas[4];
write(F1, z[1]);

read(F, mas[3]);
z[2]:= mas[3];
write(F1, z[2]);

read(F, mas[2]);
z[3]:= mas[2];
write(F1, z[3]);

read(F, mas[1]);
z[4]:= mas[1];
write(F1, z[4]);

end;

close(F);
close(F1);

end.

Выдаёт абсолютно идентичный исходному файл. А нужно зашифрованный
Tycuk вне форума Ответить с цитированием
Старый 26.12.2009, 17:32   #2
shock-in
Пользователь
 
Регистрация: 13.11.2009
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Tycuk Посмотреть сообщение
read(F, mas[3]);
z[2]:= mas[3];
write(F1, z[2]);
исходя из этой строки
Код:
z[2]:= mas[3];
ты что считал, то и записал - потому и файл выходит идентичный
shock-in вне форума Ответить с цитированием
Старый 26.12.2009, 17:59   #3
Tycuk
 
Регистрация: 26.12.2009
Сообщений: 9
По умолчанию

Почему же? первому элементу массива Z присваиваем значение четвёртого элемента массива mas, записываем его в файл. Или может я чё то не понимаю?
Tycuk вне форума Ответить с цитированием
Старый 26.12.2009, 22:50   #4
WinApi
Пользователь
 
Регистрация: 07.11.2008
Сообщений: 13
По умолчанию

read(F, mas[4]);
z[1]:= mas[4];
write(F1, z[1]);

Вы считываете байт из файла F в элемент массива mas, затем этот же байт вы заносите в элемент массива z, затем этот же байт записываете в файл F1 -> вы просто копируете побайтно файл.

нужно сделать так:
....
read(F, mas[1]);
read(F, mas[2]);
read(F, mas[3]);
read(F, mas[4]);
write(F1, mas[4]);
write(F1, mas[3]);
write(F1, mas[2]);
write(F1, mas[1]);
....
WinApi вне форума Ответить с цитированием
Старый 26.12.2009, 23:24   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

WinApi, абсолютно верно!
___________________________________ _________

для чтения файла в массив лучше воспользоваться командой BlockRead
потом вызвать процедурку перестановки байт по Вашему алгоритму.
Потом записать новый массив командой BlockWrite
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.12.2009, 12:45   #6
Tycuk
 
Регистрация: 26.12.2009
Сообщений: 9
По умолчанию

Огромное вам спасибо. Всё работает.
p.s. Странно, что сама не догадалась. Так всё просто
Tycuk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как зашифровать текстовый файл на Делфи? Ramal Общие вопросы Delphi 20 24.04.2014 21:54
Зашифровать текст Lems11 Помощь студентам 6 19.12.2009 20:35
Зашифровать ссылку eldar PHP 12 12.09.2009 16:06
Зашифровать файл, выполнив циклическую замену каждой русской буквы epica Паскаль, Turbo Pascal, PascalABC.NET 1 06.11.2008 19:00
Как зашифровать EXE файл? AngelOfDeath Безопасность, Шифрование 1 09.04.2008 19:56