Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

05.04.2010, 20:26
|
|
Новичок
Регистрация: 05.04.2010
Сообщений: 7
Провел на форуме: 17240
Репутация:
0
|
|
перебор символов(DELPHI)
подскажите пожалуйсто как организовать перебор всех возможных вариантов символов?
например:
a
..
z
aa
ab
..
az
..
ba
bb
..
bz
..
zz
aaa
aab
...
zzz
....
zzzzzzz.........
|
|
|

05.04.2010, 20:30
|
|
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме: 828081
Репутация:
84
|
|
Всех вариантов - бесконечное количество (т.к. ты макс. длину не указал)
А как можно организовать бесконечное?
|
|
|

05.04.2010, 20:46
|
|
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
Провел на форуме: 870084
Репутация:
79
|
|
Допиши условие, тогда уже можно будет обсуждать как сделать!
|
|
|

05.04.2010, 20:59
|
|
Новичок
Регистрация: 05.04.2010
Сообщений: 7
Провел на форуме: 17240
Репутация:
0
|
|
условие - подобрать пароль методом перебора символов. длину пароля не знаю. (: если не сложно подскажите как такое организовать.
|
|
|

05.04.2010, 21:04
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 97
Провел на форуме: 604635
Репутация:
15
|
|
Кури перевод чисел из одной системы счисления в другую, в твоём случае основатель системы 26(число англ. букв), каждый разряд будет в диапазоне [0..25], перевести тебе надо будет из десятичной в то которую я указал. Потом получаное число прогоняем по всем разрярам и к разряду прибавляем 0x61 и поучлаем нужный символ, профит? 
|
|
|

05.04.2010, 21:13
|
|
Новичок
Регистрация: 05.04.2010
Сообщений: 7
Провел на форуме: 17240
Репутация:
0
|
|
не профит. я ничего не понял. =\
|
|
|

05.04.2010, 21:15
|
|
Новичок
Регистрация: 05.04.2010
Сообщений: 7
Провел на форуме: 17240
Репутация:
0
|
|
а если ещё цифры вкючить и символы в перебор?
|
|
|

05.04.2010, 21:19
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 97
Провел на форуме: 604635
Репутация:
15
|
|
Эх, щас напишу тада как это сделать
|
|
|

05.04.2010, 21:25
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме: 188563
Репутация:
52
|
|
Сообщение от qwerty001
условие - подобрать пароль методом перебора символов. длину пароля не знаю. (: если не сложно подскажите как такое организовать.
1. В бесконечном цикле пробегать по ASCII отвечающий за буквы, цифры.
Код:
myChar := Chr(66); // Использование Char для конвертирования
Подробнее
2. Объявить в const базу пароля и по ней пробегать в цикле.
Вот пример как реализовывать через const:
PHP код:
const
m='qwertyuioplkjhgfdsa'; // база
Var
i,j:integer;
s,str:string;
begin
str:='';
for j:=1 to 15 do // кол-во символов*на базу
begin
for i:=1 to length(m) do
begin
s:=str+m[i];
memo1.Lines.Add(s); // что то делаем с генер, строкой
end;
str:=s;
end;
end;
P.s. но лучше сделать 1 циклом, например в While (i=255) do.
|
|
|

05.04.2010, 21:28
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 97
Провел на форуме: 604635
Репутация:
15
|
|
Код:
const ci_interval = 26; {â àãë. ñëîâàðå 26 áóêàô:)}
ci_index = $61; { èíäåêñ ñèìâîë "à" â ascii}
function IntToSymbols(Const bound : Cardinal) : String;
Var i, curBound, c_mod : Cardinal;
c_tmp : Char;
Begin
Result := '';
curBound := bound;
while true do
Begin
if curBound < ci_interval then
Begin
Result := Result + Chr(ci_index + curBound);
Break;
end;
c_mod := curBound mod ci_interval;
curBound := curBound div ci_interval;
Result := Result + Chr(ci_index + c_mod);
end;
{ïåðåâîðà÷èâàåì ñòðîêó}
for i := 1 to Length(Result) div 2 do
Begin
c_tmp := Result[i];
Result[i] := Result[Length(Result)-i+1];
Result[Length(Result)-i+1] := c_tmp;
end;
end;
Используем так :
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
begin
for i := 0 to *сколько надо вариантов* do
Memo1.Lines.Add(IntToSymbols(i));
end;
Будет выводить
a
b
c
..
z
aa
ab
ac
...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|