Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2009, 19:47   #1
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
Печаль Проверка валидности ICQ номеров

Доброго время суток !
У меня есть много асек и мне нужно проверить какие работают а какие нет., Вот и решил зделать прожку..=)
Делаю так вот только не получается =( должны быть потоки которые берут по очереди каждый номер из мемо 1 конектятся и отсеивают работате в мемо2 неробит мемо3 но почемуто этого делать не хочет ( что делаю не так? исправте меня
Код:
var
Form1: TForm1;
icqclient: array[1..208] of ticqclient;
tPass, tLine: string;
fuin,fpwd:string;
i,u:integer;
iUIN,sPos: integer;
TOnline: boolean;


    implementation

{$R *.dfm}






procedure TForm1.Button1Click(Sender: TObject);
begin
TOnline := icqclient[u].LoggedIn;
 for i := 0 to memo1.Lines.Count - 1 do
 begin
  tLine := memo1.Lines[i];
  sPos := Pos(';', tLine);
  if (sPos <> 0) then
  begin
   iUIN := StrToIntDef(Copy(tLine, 0, sPos - 1), 0);
   tPass := Copy(tLine, sPos + 1, Length(tLine));
   if (iUIN > 10000) and (tPass <> '') then
  begin
Label1.Caption:=inttostr(iUIN);
//u:=u+1;
Label2.Caption:=inttostr(i);//+'__'+inttostr(u);
icqclient[u]:=ticqclient.Create(nil);
icqclient[u].uin :=   iUIN  ;
icqclient[u].password :=tPass;
icqclient[u].ICQServer:='login.oscar.aol.com' ;
icqclient[u].OnLogin :=OnLogin;
icqclient[u].Login();
icqclient[u].OnConnectionFailed :=OnFailed;
  TOnline:=true;
end;     end;end;end;

procedure TForm1.onLogin(Sender: TObject);
begin
 Label1.Caption:='podKoHEKtilSA';
 Memo2.Lines.Add(inttostr(icqclient[u].uin)+';'+icqclient[u].password) ;
 TOnline:=false;
icqclient[u].Login();
end;



procedure TForm1.OnFailed(Sender: TObject);
begin
 Label1.Caption:='Faild';
 Memo3.Lines.Add(inttostr(icqclient[u].uin)+';'+icqclient[u].password) ;

end;
jone вне форума Ответить с цитированием
Старый 05.03.2009, 03:50   #2
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Во-первых - непонятно, при чем здесь потоки? При использовании потоков создаются классы на основе TThread и уже внутри них выполняется работа, а в коде потоками и не пахнет, это просто некий перебор объектов при нажатии кнопки.

Во-вторых - имеется ошибка в порядке работы с объектами: сначала объект используется TOnline := icqclient[u].LoggedIn, а потом только создается icqclient[u]:=ticqclient.Create(nil)! Или нужно раскомментировать строку //u:=u+1

В-третьих - непонятно когда и чем инициализируется переменная u, которая весьма интенсивно используется в разных процедурах. По сути - это основная переменная и с этим, кстати, связаны главные проблемы, ведь она меняется в произвольные моменты времени, и каким будет её значение в обработчиках никто не знает - может получиться полное рассогласование в работе всех объектов. В таких случаях вообще нежелательно использовать глобальные переменные (кроме массива клиентов).
Jeni вне форума Ответить с цитированием
Старый 05.03.2009, 08:50   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Достань себе компонент работы с аськой и проверяй наздоровье.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.03.2009, 09:27   #4
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
По умолчанию

Как исправить мне?
jone вне форума Ответить с цитированием
Старый 06.03.2009, 09:32   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Вам уже ответили в 2-м посте
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 06.03.2009, 11:37   #6
eskander
Пользователь
 
Аватар для eskander
 
Регистрация: 01.03.2009
Сообщений: 29
По умолчанию

И ошибка, которая сразу бросилась в глаза - ты пребираешь номера в цикле, не заботясь, успеет ли клиент в это время законектиться или нет, рекомендую переходить к следующему уину только в процедуре onLogin либо в OnFailed.
eskander вне форума Ответить с цитированием
Старый 06.03.2009, 11:43   #7
Alex88888
 
Регистрация: 06.03.2009
Сообщений: 4
Вопрос

Цитата:
Сообщение от Stilet Посмотреть сообщение
Достань себе компонент работы с аськой и проверяй наздоровье.
конечно, глупый вопрос... но где бы найти такой ? а заодно и с почтой...
Alex88888 вне форума Ответить с цитированием
Старый 06.03.2009, 11:54   #8
eskander
Пользователь
 
Аватар для eskander
 
Регистрация: 01.03.2009
Сообщений: 29
По умолчанию

Alex88888, для работы с аськой - http://forum.asechka.ru/showthread.php?t=97186 (к сожалению точной сылки сейчас не дам, т.к. давно не слежу за темой)
А для работы с почтой - стандартный IdSMTP.
eskander вне форума Ответить с цитированием
Старый 11.06.2012, 20:21   #9
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

а не могли бы Вы исправить код Jone, как должно быть правильно?
или просто чекер номера, в сети или нет?
если кому то не сложно сделайте исходник! спасибо!

Последний раз редактировалось hacknet; 11.06.2012 в 20:35.
hacknet вне форума Ответить с цитированием
Старый 11.06.2012, 21:08   #10
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

В бородатый 2010 год, я быдлокодил что-то подобное. Сорц предоставляю. Возьмешь то что нужно и допилишь до ума и все будет гуд.
W0LF вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение серийных номеров физических устройств Raikhman Win Api 11 01.11.2011 16:42
Найти первый из номеров K, для которых выполняется условие |AK AK–1| < D Jereme Паскаль, Turbo Pascal, PascalABC.NET 2 21.12.2008 12:54
Раздача восьмизначных ICQ номеров KiDoki Свободное общение 4 19.12.2008 22:20
Получить произведение номеров нулевых элементов AHJLPeu* Общие вопросы C/C++ 4 14.09.2008 13:10