ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

04.10.2009, 03:28
|
|
Познающий
Регистрация: 13.06.2009
Сообщений: 32
Провел на форуме: 42683
Репутация:
2
|
|
Сообщение от slesh
предпоследний параметр. в HttpOpenRequest
ещё вопросик! мб ты сталкивался! если допустим сервак сильно нагружен (сайт долго грузится) и прога падает в висняк, нельзяли както вылечить? 
|
|
|

04.10.2009, 11:07
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
смотря какой метод юзаеш. Если сокеты, то можно ставить таймаут на connect и на recv на уровне сокетов. Если юзаеш чтото большее типа WinInet то можно запускать в потоке и через WaitForSingleObject ждать определенное время завершения потока. Если WaitForSingleObject вернул статус таймаута, то закрываеш хендлы wininet'овские и прибиваешь поток.
|
|
|

04.10.2009, 15:05
|
|
Познающий
Регистрация: 13.06.2009
Сообщений: 32
Провел на форуме: 42683
Репутация:
2
|
|
Сообщение от slesh
смотря какой метод юзаеш. Если сокеты, то можно ставить таймаут на connect и на recv на уровне сокетов. Если юзаеш чтото большее типа WinInet то можно запускать в потоке и через WaitForSingleObject ждать определенное время завершения потока. Если WaitForSingleObject вернул статус таймаута, то закрываеш хендлы wininet'овские и прибиваешь поток.
не совсем дошло) вот исходничок)
Код:
function mp3(cto: string): string;
var F: File;
hSession, hURL: HInternet;
Buffer: array[1..1024] of Byte;
err: boolean;
ResumePos,BufferLen,SumSize: DWORD;
iii: integer; kyda:string;
header, data:string;
begin
kyda:='1.mp3';
SumSize:=0; ResumePos:=0;
AssignFile (F,kyda);
IF FileExists (kyda) then
begin
Reset(f,1);
ResumePos:=FileSize(F);
Seek(F, FileSize(F));
end else ReWrite(f,1);
form1.NADO:= TRUE;
hSession:= InternetOpen('MP3 Down',PRE_CONFIG_INTERNET_ACCESS,nil,nil,0);
Data:='Content-Type: application/x-www-form-urlencoded'#10;
hURL := InternetOpenURL(hSession,PChar(cto),pchar(data),length(data),INTERNET_FLAG_NO_COOKIES,0);
WaitForSingleObject(InternetOpenURL.hProcess, INFINITE);
InternetQueryDataAvailable(hURL, SumSize,0,0);
if ResumePos>0 then
begin
InternetSetFilePointer(hURL,ResumePos,nil,0,0);
end;
REPEAT
err:= InternetReadFile(hURL, @Buffer,SizeOf(Buffer),BufferLen);
IF err= false then
begin
Result := 'err';
exit;
end
else
begin
///
end;
BlockWrite(f, Buffer, BufferLen);
Application.Processmessages;
UNTIL (BufferLen= 0) Or (form1.NADO= FALSE);
Result := 'ok';
end;
|
|
|

04.10.2009, 20:20
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме: 4761503
Репутация:
229
|
|
Есть к примеру такой html код:
Код:
<html>
<head><title>Отпарсите меня пожалуйста :-)</title></head>
<body>
<a href="http://yandex.ru/">Го на яндекс</a>
<a href="http://google.ru/">Го на гугл</a>
<a href="http://yahoo.com/">Го на яху</a>
</body>
</html>
Как отпарсить этот код с помощью регулярки?
Именно нужно в мемо добавить то что в href стоит
Мемо должен такой получится после парсинга
Код:
http://yandex.ru/
http://google.ru/
http://yahoo.com/
Знаю как парсить один результат а как несколько парсить не знаю :-(
|
|
|

04.10.2009, 20:53
|
|
Участник форума
Регистрация: 16.09.2006
Сообщений: 139
Провел на форуме: 513709
Репутация:
144
|
|
wolmer,собстно вот:
http://forum.vingrad.ru/articles/topic-213075.html
Последний раз редактировалось ZirroCool; 04.10.2009 в 20:56..
|
|
|

04.10.2009, 21:39
|
|
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме: 1702086
Репутация:
89
|
|
wolmer, ежели использовать RegExpr... Применительно к вашему примеру (s - ваш текст).
Код:
function extract (const ainputstring : string; buf : string) : tstringlist;
var
r : tregexpr;
f : tstringlist;
begin
f := tstringlist.create;
r := tregexpr.create;
try
r.expression := buf;
if r.exec (ainputstring) then
repeat
f.add (r.match [0]);
until not r.execnext;
finally r.free;
end;
result := f;
end;
function to_memo (s : widestring) : integer;
begin
if extract (s, 'http[^"]*[^"]') <> nil then form1.memo1.lines.addstrings (extract (s, 'http[^"]*[^"]'));
result := 1;
end;
|
|
|

04.10.2009, 22:41
|
|
Новичок
Регистрация: 04.10.2009
Сообщений: 1
Провел на форуме: 1276
Репутация:
0
|
|
А где в Dephi 7 компонент NMFTP
|
|
|

04.10.2009, 22:56
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Сообщение от Хотшок
А где в Dephi 7 компонент NMFTP
его можно установить используя компоненты FastNet для делфаря 7
|
|
|

04.10.2009, 22:44
|
|
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме: 1702086
Репутация:
89
|
|
Хотшок, его там нет. Используйте альтернативу - TidFTP, вкладка indy clients.
|
|
|

05.10.2009, 09:43
|
|
Познающий
Регистрация: 11.07.2009
Сообщений: 83
Провел на форуме: 279987
Репутация:
30
|
|
не соединяется tiсqcliеnt. посоветуйте что делать?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|