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

16.06.2010, 14:10
|
|
Новичок
Регистрация: 17.09.2009
Сообщений: 18
Провел на форуме: 884969
Репутация:
11
|
|
Не, вы наверно меня не поняли. Динамические массивы тут не при чем.
Вот, например, чтобы вывести то, что мне нужно для 123 я использую код:
Код:
procedure reflex3(myfz:string);
var k, i:integer;
temp:string;
begin
for i := 1 to 2 do
for k := 1 to Length(myfz) do
begin
temp:=myfz;
delete(temp, k, i);
Writeln(temp);
end;
for k := 1 to Length(myfz) do writeln(myfz[k]); end;
Для того, чтобы вывести для 1234 нужен уже другой код, а мне нужна универсальность. Вот и спрашиваю как сделать, чтоб код не зависел от количества элементов =)
Сделал так:
Это чтоб не повторялись:
Код:
var
st:tstringlist;
....
st:=TStringList.Create;
st.Sorted:=true;
st.Duplicates:=dupIgnore;
Код:
procedure newrewlex(f:string);
var i,k:integer;
temp:string;
begin
if Length(f)=1 then exit;
for k := 1 to Length(f) do
begin
temp:=f;
delete(temp, k, 1);
st.Add(temp);
newrewlex(temp);
end;
end;
Последний раз редактировалось Скотти; 16.06.2010 в 14:38..
|
|
|

16.06.2010, 17:10
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
Сообщение от Скотти
Привет, нужна помощь.
Есть например строка 123, нужно получить:
1)
1
2
3
2)
12
13
23
Далее, если например строка 1234,нужно получить:
1)
1
2
3
4
2)
12
13
14
23
24
34
3)
134
124
123
234
Реализовать алгоритм для каждого случая не проблема,но нужно, чтоб алгоритм не зависел от количества элементов
очень просто, модифицируй мой генератор
http://zemus.us/05/combination-generator.html
|
|
|

16.06.2010, 21:42
|
|
Познающий
Регистрация: 23.06.2009
Сообщений: 63
Провел на форуме: 681055
Репутация:
53
|
|
Появилась ошибка
Написал код авторизации ВК
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
a:integer;
b:string;
c:variant;
begin
c:=WebBrowser1.OleObject.Document.forms.item(0).elements;
for a:=0 to (c.lenght-1) do
begin
if (c.item(a).name='email') then c.item(a).value:='e-mail';
if (c.item(a).name='password') then c.item(a).value:='password';
if (c.item(a).value='Âõîä') then c.item(a).click ;
end;
end;
При нажатии зловещей Button3 выдает

|
|
|

16.06.2010, 21:59
|
|
Познающий
Регистрация: 21.11.2009
Сообщений: 77
Провел на форуме: 2482290
Репутация:
29
|
|
Сообщение от Dead4ik
Появилась ошибка
Написал код авторизации ВК
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
a:integer;
b:string;
c:variant;
begin
c:=WebBrowser1.OleObject.Document.forms.item(0).elements;
for a:=0 to (c.lenght-1) do
begin
if (c.item(a).name='email') then c.item(a).value:='e-mail';
if (c.item(a).name='password') then c.item(a).value:='password';
if (c.item(a).value='Âõîä') then c.item(a).click ;
end;
end;
мб length, а не lenght?
А вообще webbrowser уг:/
|
|
|

16.06.2010, 22:04
|
|
Познающий
Регистрация: 23.06.2009
Сообщений: 63
Провел на форуме: 681055
Репутация:
53
|
|
Сообщение от TrueBit
мб length, а не lenght?
А вообще webbrowser уг:/
Точно. Но все равно ошибка

Есть альтернатива?
|
|
|

16.06.2010, 22:12
|
|
Познающий
Регистрация: 21.11.2009
Сообщений: 77
Провел на форуме: 2482290
Репутация:
29
|
|
Сообщение от Dead4ik
Есть альтернатива?
Зависит от конкретной задачи.
В любом случае советую логинется на winsock, или на крайняк indy, тк webbrowser жрёт много ресурсов
|
|
|

16.06.2010, 22:14
|
|
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
Провел на форуме: 870084
Репутация:
79
|
|
Авторизовывался в контакте след. кодом :
PHP код:
Post := TStringList.Create;
Response := TStringList.Create;
//1 запрос
Post.Add('op=a_login_attempt');
Response.Text := IdHTTP1.Post('http://vkontakte.ru/login.php',Post);
//2 запрос
Post.Clear;
Post.Add('email=mail');
Post.Add('pass=password');
Post.Add('expire=');
Post.Add('vk=');
Response.Text := IdHTTP1.Post('http://login.vk.com/?act=login',Post);
Post.Clear;
//Парсим хэш
hash := Response.Text;
Delete(hash,1,Pos('value',hash)+6);
Delete(hash,Pos('''',hash),Length(hash));
//3 запрос
Post.Add('s='+hash);
Post.Add('op=slogin');
Post.Add('redirect=1');
Post.Add('expire=0');
Post.Add('to=');
Post.Add('request_method=post');
Response.Text := IdHTTP1.Post('http://vkontakte.ru/login.php',Post);
Сейчас в отпуске. На другой машине скачал дельфи. Набросал код для авторизации, но он не проходит. Хотя буквально неделю назад тем же кодом авторизовывался. В чем проблема, кто подскажет?
Подозреваю что проблема с куками(т.е с самим Delphi).....
|
|
|

16.06.2010, 22:24
|
|
Познающий
Регистрация: 21.11.2009
Сообщений: 77
Провел на форуме: 2482290
Репутация:
29
|
|
Сообщение от fenixelite
Набросал код для авторизации, но он не проходит. Хотя буквально неделю назад тем же кодом авторизовывался. В чем проблема, кто подскажет?
Подозреваю что проблема с куками(т.е с самим Delphi).....
Там вроде параметр s переименовали..
ща снифером гляну
-------------------
не, ошибся, там что то другое..
Последний раз редактировалось TrueBit; 16.06.2010 в 22:37..
|
|
|

16.06.2010, 23:19
|
|
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
Провел на форуме: 870084
Репутация:
79
|
|
TrueBit, попробуй моим кодом авторизоваться плз... Просто я подозриваю, что дело в дельфи... Щас с другого компа сижу, и дельфи новая...
|
|
|

16.06.2010, 23:46
|
|
Познающий
Регистрация: 21.11.2009
Сообщений: 77
Провел на форуме: 2482290
Репутация:
29
|
|
Сообщение от fenixelite
TrueBit, попробуй моим кодом авторизоваться плз... Просто я подозриваю, что дело в дельфи... Щас с другого компа сижу, и дельфи новая...
Пробовал на D7 всё норм, авторизовался
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|