Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.09;
Скачать: CL | DM;

Вниз

Как текст из Edit перевести в цифры?   Найти похожие ветки 

 
Intell ©   (2003-05-26 17:43) [0]

Как текст из Edit перевести в цифры? Т.е. вместо букв будут цифры.


 
Skier ©   (2003-05-26 17:44) [1]

>Intell © (26.05.03 17:43)
Ну и зачем сие ?


 
Intell ©   (2003-05-26 17:46) [2]

А вот тебе ... я ... не скажу. Шутка. Надо осуществить кодирование информации и декодирование обратно. Слова>цифры, цифры>слова.


 
Skier ©   (2003-05-26 17:49) [3]

>Intell © (26.05.03 17:46)
Ord(...) & Chr(...) ?


 
Intell ©   (2003-05-26 17:50) [4]

Skier, попробую. Если чё, то скажу.


 
Palladin ©   (2003-05-26 17:53) [5]


> Skier © (26.05.03 17:49)

ентож не та схема :)


 
Intell ©   (2003-05-26 18:05) [6]

Skier, не получается, либо я глючу, либо пример не подходит. Мне надо из Edit1 текст перекодировать в цифры (символы) и занести их в Edit2.text. Получаетя: Edit1.text="Ля-ля-ля", Edit2.text="Какие-то символы или цифры"


 
Skier ©   (2003-05-26 18:12) [7]

>Intell © (26.05.03 18:05)
Это нужно для ввода пароля ? Или какая-то другая цель ?


 
pasha676   (2003-05-26 18:25) [8]

Кодирование и декодирование может осуществяться мульоном количество разных вариантов. Skier абсолютно прав. Совершенно не понятно что тебе надо.
Надо делать посимвольно (это простой случай). Берешь первую букву строки, преобразовываешь в число, кодируешь, ложишь на первое место в нужной строке. Какие проблеммы?


 
NickBat ©   (2003-05-26 18:33) [9]

Попробуй так:
if Edit1.text="Ля-ля-ля"
then Edit2.text:="Какие-то символы или цифры";

:))


 
Palladin ©   (2003-05-26 18:44) [10]


var
s:string;
begin
s:="";
for i:=1 to Length(Edit1.Text) do s:=s+Char(65+(Random(Byte(Edit1.Text[i]))+Random(Byte(Edit1.Text[i])))/2);
Edit1.text:=s;
end;


 
Intell ©   (2003-05-26 20:47) [11]

Как тут меня критикуют... Зачем вам надо знать, что я собираюсь делать? И так я сно - просто перевести в цифры и всё. Зачем делать из мухи слона.


 
old_monkey   (2003-05-26 21:00) [12]

Так от этого все и зависит.
В простейшем случае каждой букве присваиваешь соответствие из 1-2 цифры. Проще, если всегда 2. Если длина зависит от частоты, то получится компактнее и непонятнее.
Читай К.Шеннона "Энтропия английского текста" - лекция, прочитанная в 1944 году дешифровальщикам американского генштаба. У нас издавалась примерно в 1965 в толстом сборнике К.Шеннон "Теория информации". В русском переводе приведены частоты употребления символов и для русского текста тоже (правда художественного :)).
Вообще-то, это в институте 3 или 4 курс.



 
Intell ©   (2003-05-26 21:09) [13]

old_monkey, мне можно и в двоичной системе счисления. Без разницы. Нужен любой рабочий пример кодировки текста в шифр (цифры) и обратно.
Palladin, что-то не пошло, по какой-то причине не хочет воспринимать i:=1.


 
Palladin ©   (2003-05-26 22:15) [14]

да действительно,
исправь
var
s:string;
на
var
i:integer;
s:string;


 
Intell ©   (2003-05-27 09:11) [15]

Palladin, слышь, до того как я писал сообщение о ошибке я исправлял на I:integer, почему-то не хочет работать. Может я чего-то лишнего где-то прописал в программе?


 
Palladin ©   (2003-05-27 09:46) [16]

а вот так?
var
s:string;
i:integer;
begin
s:="";
for i:=1 to Length(Edit1.Text) do s:=s+inttostr(byte(Edit1.Text[i]));
Edit1.text:=s;
end;



 
Intell ©   (2003-05-27 09:56) [17]

Попробую.


 
Intell ©   (2003-05-27 14:33) [18]

Palladin, работает. А как теперь сделать обратный процесс - из цифр в буквы, или в данном примере это не возможно?


 
Skier ©   (2003-05-27 14:38) [19]

const
YOUR_KEY = "A";

туда : (Ord(Src[Index]) + Ord(YOUR_KEY)) mod 256
обратно : (Ord(Src[Index]) - Ord(YOUR_KEY)) mod 256


 
Intell ©   (2003-05-27 14:41) [20]

Skier, попробую.


 
Palladin ©   (2003-05-27 14:57) [21]

:)а обратно никак, надо выравнивать каждый переделаный символ до 3 символов слева нулями, тогда можно будет вернуть обратно


 
Intell ©   (2003-05-27 15:04) [22]

Skier, либо ты многого не дописал, либо пример совершенно не рабочий.
Palladin, спасибо. Буду всё же пытаться.


 
Skier ©   (2003-05-27 15:07) [23]

>Intell © (27.05.03 15:04)
Ну, знаешь ли, писать за тебя я не буду...Palladin напишет, если
ты ему ещё не надоел...


 
MBo ©   (2003-05-27 15:10) [24]

;)
Прошли приступы немотивированного альтруизма?


 
Intell ©   (2003-05-27 15:13) [25]

Skier, коли дело так обстоит, тогда зачем отвечал - мог бы сразу сказать "писать за тебя я не буду..." и всё.


 
Skier ©   (2003-05-27 15:13) [26]

>MBo © (27.05.03 15:10)
Касаемого этого случая - да. :) Уж очень всё это похоже на блуждание в 3-х соснах. :)


 
Intell ©   (2003-05-27 15:19) [27]

Зря... Очень, на мой взгляд, интересный вопрос.


 
Palladin ©   (2003-05-27 15:21) [28]

:)
да вы не понимаете человеку надо буквы в цифры...
обратно ему не надо было...
сначала...

это туда

function CharsToNums(s:string):string;

function _CharToNum(c:char):string;
var
i:integer;
begin
result:=inttostr(byte(c));
for i:=2 downto length(result) do result:="0"+result;
end;
var
i:integer;
begin
result:="";
for i:=1 to length(s) do result:=_CharToNum(s[i]);
end;

это обратно

function NumsToChars(s:string):string;
var
i:integer;
begin
result:="";
for i:=1 to length(s) div 3 do result:=strtoint(copy(s,(i-1)*3,3));
end;


а вообще это прикольно... :)


 
Palladin ©   (2003-05-27 15:22) [29]

ой, ошибки, две :)
найди с третьего раза называется...

это уж тебе предоставлю


 
borg   (2003-05-27 15:22) [30]

var i,a,s,uncode:integer;
z,x,c,glob,itog:string;
st:=edit1.Text;
for i:=length(st) downto 1 do
begin
a:=inttostr(ord(st[i]));
if length(a)=2 then a[3]:="%";
glob:=glob+a[3]+a[2]+a[1];
end;//зашифровать



a:=length(glob) div 3;
for i:=a downto 1 do
begin
s:=strtoint(glob[i*3]+glob[i*3-1]+glob[i*3-2]);
c:=c+chr(s);
end;
edit1.Text:=c; //расшифровать


попробуй всё работает фишрует туда и обратно


 
Intell ©   (2003-05-27 15:23) [31]

Сначала было не надо... Но резко ..., короче опомнился.


 
Skier ©   (2003-05-27 15:23) [32]

>Intell © (27.05.03 15:19)
Не интересный...
Всё это "кодирование" было разобрано Марко Кэнту, ещё
во времена D3. Кроме того ты так и не сказал (внятно) зачем
всё это тебе нужно...


 
Intell ©   (2003-05-27 15:25) [33]

Skier, а зачем тебе всё это нужно? Может тебе ещё исходный текст моей программы предоставиь? Енто ведь секр...


 
Intell ©   (2003-05-27 15:27) [34]

Попёрло... То затишье, то куча помощников. Спасибо, посмотрим.


 
Skier ©   (2003-05-27 15:27) [35]

just another flame...


 
Intell ©   (2003-05-27 16:08) [36]

borg, твой пример был немого с ошибками, но я их исправил. НО... Дело в том, что не всегда удаётся расшифровать код. Дело в том, что твой код не читает "%", а часто шифрует буквы в него.
Palladin, пока в твоём последнем примере не разобрался, но буду продолжать.



Страницы: 1 вся ветка

Текущий архив: 2003.06.09;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.028 c
3-26386
al11
2003-05-19 17:21
2003.06.09
Никак не могу составить SQL запрос, помогите пожалуйста.


14-26687
Scorpx
2003-05-25 10:28
2003.06.09
Новая функция у программы


14-26715
Лфкищ
2003-05-22 09:19
2003.06.09
Про Rus Eng


1-26483
-= Demon =-
2003-05-29 14:27
2003.06.09
Запуск DOS-окна


1-26528
servs
2003-05-26 20:52
2003.06.09
OnDestroy для ActiveXForm