Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];

Вниз

Как текст из 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.01 c
9-26328
ACR
2002-08-03 03:44
2003.06.09
Празрачность


1-26498
0utsider
2003-05-23 11:39
2003.06.09
ShellTreeView


1-26444
Frist_May
2003-05-29 09:34
2003.06.09
Десктоп...


4-26844
Gefest
2003-04-11 21:03
2003.06.09
Как создать StringGrid только через API?


1-26541
pet
2003-05-27 20:51
2003.06.09
Отдельный процесс





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский