IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Файлы - кодирование и декодирование
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


Создать программу кодирования и декодирования файла по следующему принципу: пользователь вводит пароль, программа на основе символов пароля циклически увеличивает символы в файле.

Например:
Пароль содержит символы с кодами 46,54,105.
Файл содержит символы с кодами 35,200,34,221,10,13.
Результирующий файл содержит символы с кодами (35+46,200+54,34+105,221+46,10+54,13+105).

:p2:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата(Татка @ 7.06.05 21:08)
Результирующий файл содержит символы с кодами (35+46,200+54,34+105,221+46,10+54,13+105).

wacko.gif
Код символа ограничен: 0 - 255, там выходит 267, что будем делать?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


Я думаю, если код символа больше 255, то код символа минус 255. Ну а обратно принцип понятен. :p2:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата(Татка @ 7.06.05 22:24)
Ну а обратно принцип понятен.

Ну, раз понятен, то попробуй реализовать... Вот мне например не понятен rolleyes.gif Вот шифрование:
var
  f_in, f_out, f_key: text;
  ch, key_ch: char;
begin
  assign(f_in, 'file_in.txt'); reset(f_in);
  assign(f_key, 'file_key.txt'); reset(f_key);

  assign(f_out, 'file_out.txt'); rewrite(f_out);

  while not eof(f_in) do begin
    read(f_in, ch);

    read(f_key, key_ch);
    if eof(f_key) then reset(f_key);

    ch := char((ord(ch) + ord(key_ch)) mod 255);
    write(f_out, ch);
  end;

  close(f_out);
  close(f_key);
  close(f_in);
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


Цитата
Ну, раз понятен, то попробуй реализовать... Вот мне например не понятен 


Ну с Паскалем у меня туговато, а вот аналитически - пожалуйста:
например:
250 + 46 = 296

шифруем:
(296 > 255) ? 296 - 255 = 41

дешифруем:
41 - 46 = -5

(-5 < 0) ? 255 + (-5) = 250
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Ну, я же привел шифрование уже...
Тогда дешифрование будет таким:
var
  f_in, f_out, f_key: text;
  ch, key_ch: char;
  T: shortint;
begin
  assign(f_in, 'file_out.txt'); reset(f_in);
  { то что зашифровали предыдущей программой }

  assign(f_key, 'file_key.txt'); reset(f_key);
  { тот же ключ }

  assign(f_out, 'file_sec.txt'); rewrite(f_out);
  { то что расшифруется - должно быть идентично file_in.txt }

  while not eof(f_in) do begin
    read(f_in, ch);

    read(f_key, key_ch);
    if eof(f_key) then reset(f_key);

    T := ord(ch) - ord(key_ch);
    ch := char(T + byte(T < 0)*255);
    write(f_out, ch);
  end;

  close(f_out);
  close(f_key);
  close(f_in);
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


:flowers:
Спасибо, спасибо, спасибо!!! :molitva:
:rose:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.04.2025 20:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name