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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2017, 21:50   #1
diman97_09
 
Регистрация: 16.02.2017
Сообщений: 7
Восклицание Замена букв аналогами

Есть текст в файле, если если бит этого текста равен единице, то в тексте-контейнере меняем русскую букву на английский аналог. Если бит равен нулю, то очередную букву-аналог в тексте-контейнере оставляем без изменений.
текст с замененными буквами записывается во второй файл.
Как трактовать "если бит этого текста=1"?
если можно, код)
diman97_09 вне форума Ответить с цитированием
Старый 23.03.2017, 22:49   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

судя по всему, речь идёт о стеганографии - способе спрятать своё сообщение внутри другого файла.

суть такая - берём достаточно длинный текстовый файл.
берём сообщение, которое нужно спрятать (короткое).
сообщение переводим в бинарный вид (символы сообщения, например, берём в кодировке ASCII - один символ - это один байт, и записываем каждый байт отдельно.
слово мама превратится в
10101100 10100000 10101100 10100000

потом берём каждый бит и, если он равен 1, то заменяем нужную букву в текстовом файле, если ноль, пропускаем эту букву.


Цитата:
Сообщение от diman97_09 Посмотреть сообщение
если можно, код)
это не сложно, но займёт определённое время.
Попробуйте написать самостоятельно.

вот похожие темы на форуме:
http://www.programmersforum.ru/showthread.php?t=291731

http://www.programmersforum.ru/showthread.php?t=188241

Последний раз редактировалось Serge_Bliznykov; 23.03.2017 в 22:53.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.03.2017, 21:31   #3
diman97_09
 
Регистрация: 16.02.2017
Сообщений: 7
По умолчанию

Нет, не о стеганографии, надо проверить младший бит буквы на 1 или 0, если 1, то во второй файл записываем букву аналог, если 0, то записываем обычную букву, все. Но я не понимаю как это реализовать, и еще надо все эти младшие биты выписать в строку, чтоб потом можно было раскодировать(т.к. у русской буквы и у ее английского аналога младшие биты разные могут быть)
ни каких стеганографий нет тут.
diman97_09 вне форума Ответить с цитированием
Старый 24.03.2017, 21:37   #4
diman97_09
 
Регистрация: 16.02.2017
Сообщений: 7
По умолчанию

Код:
const rus = 'АаВЕеКМНОоРрСсТХх';
      lat = 'AaBEeKMHOoPpCcTXx';
var f, g: file of char;
    ch: char;
    p: integer;
begin
  assign(f, 'f.txt');
  reset(f);
  assign(g, 'g.txt');
  rewrite(g);
  while not eof(f) do
    begin
      read(f, ch);
      if byte(ch) and 128 > 0 //---- смотрим старший бит
        then begin //---- если = 1, то 
          p := pos(ch, rus); //смотрим, есть ли буква в русском списке
          if p > 0 then ch := lat[p]; //если есть, заменяем её буквой из латинского списка
        end; //----
      write(g, ch)
    end;
  close(f);
  close(g)
end.
есть такой код, но она смотрит на старший бит. Он не работает, т.к. старший бит у буквы всегда =1
diman97_09 вне форума Ответить с цитированием
Старый 24.03.2017, 23:03   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

на младший бит надо "смотреть" так:

Код:
if (ord(ch) and 1) <> 0 //---- смотрим младший бит
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.03.2017, 17:43   #6
diman97_09
 
Регистрация: 16.02.2017
Сообщений: 7
По умолчанию

Благодарю)
diman97_09 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена букв в строке. joker 2289 Общие вопросы C/C++ 3 04.11.2015 13:07
Замена букв(delphi) Taner Помощь студентам 4 25.04.2014 23:00
Замена букв! kykysya Общие вопросы Delphi 17 18.10.2010 21:17
Замена букв rasti6ka Паскаль, Turbo Pascal, PascalABC.NET 1 17.05.2009 15:24
замена знаков и букв memka PHP 8 19.04.2009 18:51