|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.12.2007, 13:40 | #1 |
Форумчанин
Регистрация: 26.11.2007
Сообщений: 235
|
Побуквенное шифрование текста!
Помогите пожалуйста,
У меня имеется memo1,memo2, button1. Необходимо, чтоб при вводе слова в memo1 и нажатии button1 в memo2 отображались те символы, которые я присвоил соответсвующим буквам. Символы должны иметь тип string, потому что у меня , например букве 'a' соответствует символ 'A@' 'b' -----------------------'B' 'c' -----------------------'c$'. То есть мой вопрос в том, как программно написать это соответствие и чтоб в символы перевелось целиком введенное слово. Заранее говорю, подглаву Шифрование я сморел на форуме, там есть шифрование отдельных символов и шифрование текста с ключем. А у меня просто надо написать соответствие. Заранее благодарю всех кто окажет хоть какую то помощь |
11.12.2007, 18:35 | #2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Непонятно большая часть вашего текста. Как я понял просто перебирая один текст вставлять соответствие в другой ? если да то букв одинаково поэтому Вам стоит всеголиш создать два массива как константы или генерировать в ходе программы типа String; после внести в один символ простой ( букву ), а во второй Вашего соответствие. Потом функция для шифрования будет выглядеть примерно так:
допустим Ваши буквы в массиве Symbols, а шифровка в EnSymbols; как я вижу ваше соответстиве на одну букву приходится два символа ? Если да то можно ускорить процесс шифровки ( если текст довольно таки большой ). так же для ускорения создайте массив для 0..255 - и при внесении просто ну вот допустим букву a ->> Symbols[ord('a')] := 'a'; вот таким образом. function EncodeText(Str: String): String; var i: Integer; begin // ускорение процесса SetLength(Result, Length(Str) * 2); for i:= 1 to Length(Str) do begin Result[i * 2 - 1] := EnSymbols[ord(Str[i])][1]; Result[i * 2] := EnSymbols[ord(Str[i])][2]; end; end; Вроде так, исходя из выше Вами описанного. |
11.12.2007, 18:55 | #3 |
Пользователь
Регистрация: 30.08.2007
Сообщений: 25
|
Можно ещё так
Код:
|
11.12.2007, 23:37 | #4 |
Форумчанин
Регистрация: 26.11.2007
Сообщений: 235
|
Спасибо большое Dude_first , правда я еще код этот не пробовал, только посморел ща, но думаю это то что мне надо! Спасибо, если не получится я тут опять напишу ))))
|
12.12.2007, 11:39 | #5 |
Форумчанин
Регистрация: 26.11.2007
Сообщений: 235
|
Dude_first --- Чувак огромное тебе спасибо!!! сработало все!
|
22.08.2013, 20:19 | #6 | |
Регистрация: 30.04.2013
Сообщений: 3
|
Цитата:
|
|
22.08.2013, 20:27 | #7 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 912
|
|
22.08.2013, 21:53 | #8 |
Регистрация: 30.04.2013
Сообщений: 3
|
Код:
Код:
|
22.08.2013, 22:29 | #9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Операцию "-" нельзя применять к строкам в Делфи.
Вообще в данном случае нужно составлять карту символов - двумерный массив, где в ячейках представлены исходные символы и символы замены.
I'm learning to live...
|
23.08.2013, 07:29 | #10 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 912
|
Обратное математическое действие относительно сложения, аналогичного действиям с числами, в строках нет. В Вашем случае можно попробовать замену символов.
П.С. На будущее, как и сказал Stilet, воспользуйтесь двумерными массивами. И работайте не со строками и символами напрямую, представляйте их хотя бы в ASCII коде. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шифрование текста | SoundMan | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 15.08.2008 22:39 |
шифрование | Stanislav | Свободное общение | 10 | 04.03.2008 05:09 |