1)потоки не тру? 2)Это бы я вынес перед циклом. PHP: hHost := gethostbyname(PChar(kuda)); hAddr.sin_family := PF_INET; hAddr.sin_port := htons(80); hAddr.sin_addr := pinaddr(hHost^.h_addr^)^; hTimeout.tv_usec := 0; hTimeout.tv_sec := mstimeout; я делфи не очень понимаю, но так вроде верно.
А зачем тебе setsockopt(hSocket, SOL_SOCKET, SO_RCVTIMEO, @hTimeout, sizeof(ttimeval)); ты же ничего не recv'ишь
Если проблема что виснет комп, попробуй запустить ее отдельным потоком, а в основном добавь цикл из Application.ProcessMesssages (не помню как пишется, ну ты понял)
Здравствуйте, может кто-нибудь помочь хорошим примером или описанием, как работать с SSL, без инди и тп вещами)?
Вообщем сделал чекер ОД, всё работает, всё хорошо, хочу усовершенствовать, сделать не одиночную проверку акка, а сразу список. Существуют такие строки: Data.Add('st.email='+Edit1.Text); // вписываю на сайт одноклассников логин Data.Add('st.password='+Edit2.Text); // вписываю пароль Как объединить мне в одно Мемо всё вместе в формате - логин:пароль, и чтобы всё это выводило в другое мемо (в данном случае Валид и Невалид) Сама программа: http://forum.antichat.ru/thread196772.html Заранее спасибо, если что пишите в асю 428810406
1. Цикл (While, For) 2. Парсинг данных: Copy, Pos, DEL. объединить: memo1.Lines.Add(Edit1.Text+':'+Edit2.Text); Прогоняй в цикле список и при помощи пункта 2, подставляй логин и пароль, проблема может возникнуть только много запросов с 1 ИП, так что надо прокси, и наверное небольшие задержки между посылками запросов.
Как равномерно распределить 15 потоков по memo1 Чтобы каждый поток работал с 1\15 частью memo1 PS количество потоков и количество строк заранее не известно. В голову приходит одна чушь Объясните хотя бы на словах плиз)
Читать или записывать? Если читать, просто делишь N строк на 15 и потом считываешь с нужных позиций. типа 30 строк 1 поток с 1 строки 2 поток с 3 строки и т.д. Кол-во элементов на 1 поток = N div M ну можно еще N mod M = если не равно 0, то раскидать по 1 эл. на поток, тогда надо делать сдвиг позиции. у следующего потока, но можно оставить и так, тогда остаток заберет последний поток. С Записью вроде все это бессмысленно.
имеются несколько файлов f1, f2, f3. Procedure OpenFile1; begin assignfile(f1,'f1.dat'); if FileExists('f1.dat') then reset(f1) else rewrite(f1); end; Как сделать так, чтобы не писать три процедуры для открытия файлов? Что это за тип f1 ? Какого типа должна быть переменная a , чтобы a:=f1 ?
можно в одной процедуре всё описать, только место f1 подставлять f2 и f3 соответсвенно. f1 - .dat (стандартный тип файлов для паскаля) как ты переменной собрался присваивать файл? ты вообще с файлами работал?-_- assign (f1,'f1.dat') - те ты ассоцируешь ключевому слову f1 - файл f1.dat
Я хочу вместо Code: Procedure OpenFile(nomer: byte); begin case Nomer of 1: begin assignfile(f1,'f1.dat'); if FileExists('f1.dat') then reset(f1) else rewrite(f1); end; 2: begin assignfile(f2,'f2.dat'); if FileExists('f2.dat') then reset(f2) else rewrite(f2); end; 3: begin assignfile(f3,'f3.dat'); if FileExists('f3.dat') then reset(f3) else rewrite(f3); end; end; end; получить нечто похожее на Code: Procedure OpenFile(a: ff); begin case a of f1: str:='f1.dat'; f2: str:='f2.dat'; f3: str:='f3.dat'; end; assignfile(a,str); if FileExists(str) then reset(a) else rewrite(a); end; я не знаю, как это правильно реализовать, так как раньше не сталкивался с этим.
На сколько я помню, в VB это я делал так: находим пустой элемент, его удаляем, и смещаем все идущие за ним элементы на 1 пункт и т.д. думаю и на дельфи так же будет! пробуй PHP: for i:=1 to n do begin if a[i]:='' then do begin for t:=i+1 to n do begin a[t-1]:=a[t]; end; n:=n-1; end; end;
Подскажите, где трабла? проблема в том что если прокся не рабочая, то выдает ошибку сокета 10060 типа превышено время ожидания.... пробовал по всякому как видите, от этой ошибки не избавился.... надо чтобы если прокся не рабочая, он удалял ее из списка и переходил дальше проверять! PHP: var i,port: integer; ProxyList,params,Presponseres:tstrings; proxy,por,ip:string ; begin ProxyList:=tstringlist.Create; ProxyList.LoadFromFile('Proxy.txt'); params:=TStringList.Create; Presponseres:=TStringList.Create; if ProxyList.Text='' then begin ShowMessage ('Список пуст'); exit; end; for i:= 0 to ProxyList.Count-1 do begin Proxy:=ProxyList.Strings[i]; ip:=getip(Proxy); por:=getport(Proxy); port:=StrToInt(por); showmessage(proxy); try IdHTTP1.ProxyParams.ProxyServer:=ip; IdHTTP1.ProxyParams.ProxyPort:=port; IdHttp1.ReadTimeout:=10000; IdHTTP1.Get('http://getmyip.ru/'); except ProxyList.Delete(i); ProxyList.SavetoFile('Proxy.txt'); ProxyList.free; end; end; end; ну че блин... никто помочь не может чтоль(((( всем помогаю, а мне никто(((
Попробуй вместо f1,f2,f3 использовать массив тоесть примерно так: PHP: var f:array[1..3] of textfile; Procedure OpenFile(a: dword); begin case a of 1: str:='f1.dat'; 2: str:='f2.dat'; 3: str:='f3.dat'; end; assignfile(f[a],str); if FileExists(str) then reset(f[a]) else rewrite(f[a]); end; можно так: PHP: var f:array[1..255] of textfile; Procedure OpenFile(i: dword); begin str:='f'+inttostr(i)+'.dat'; assignfile(f[i],str); if FileExists(str) then reset(f[i]) else rewrite(f[i]); end; p.s. inttostr - перевод числа в строку (Delphi)
Вот, ошибка не вылетает, если программу запускать отдельно, тоесть не под средой разработки, проверял на этом коде. PHP: procedure TForm1.Button1Click(Sender: TObject); begin IdHTTP1.ProxyParams.ProxyServer:='114.127.246.36'; IdHTTP1.ProxyParams.ProxyPort:=8080; try IdHTTP1.Get('http://ya.ru'); showmessage('Рабочий'); except showmessage('Не рабочий'); // удаляем из списка end; end; Меня смутили эти строки, при ошибке сохранить и освободить список? если тебе надо только удалить ненужный эл. списка, и продолжить цикл. PHP: ProxyList.SavetoFile('Proxy.txt'); ProxyList.free;