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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2011, 22:57   #1
Semechka
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 11
По умолчанию Потоки. Изображения нулевого размера

Доброго времени суток.

Знатоки подскажите пожалуйста. Вот код.


Цитата:
procedure TNewThread.Execute;
var
data:Tstringlist;
coock:TIdCookieManager;
FS:TFileStream;
socks:TIdSocksInfo;
socket:TIdSSLIOHandlerSocketOpenSSL ;
HTTP: TIdHTTP;
HTTP.CookieManager:=coock;

begin

HTTP:=TIdHTTP.create;


try

S:=HTTP.get('адрес');



if Pos('Слово', s)>0 then
begin


12_id:=(Pars('1231', s, '"'));
12_id2:=(Pars('1231, s, '"'));
12_id5:=Copy(s, Pos('s4234', s)+1, 40);
12_id8:=(Pars('name="2342" value="', s, '"'));
12_id9:=(Pars('image" value="', s, '"'));
12:=Pars('gnm=', S, '"');
12_id4:=(Pars('name="tsd" value="', s, '"'));


FS:=TFileStream.Create(ExtractFileP ath(Application.ExeName)+12_id+'.jp g',FMCreate);
HTTP.Get('адрес'+12_id9, FS);
FS.Free;

except
end;
....
Выполняю данный код в несколько потоков.
создаю через create(false);


Суть проблемы:
Иногда, создаются изображения нулевого размера т.е. 0кб.

Пробовал критические секции, и сихронайз, получается одинаковые картинки.

Буду благодарен за подсказки.
Semechka вне форума Ответить с цитированием
Старый 19.12.2011, 08:06   #2
Semechka
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 11
По умолчанию

Прям так глухо?
Semechka вне форума Ответить с цитированием
Старый 19.12.2011, 10:05   #3
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

не совсем понятно что делаешь.. Парсишь картинку и скачиваешь ее?
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 20.12.2011, 00:26   #4
Semechka
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 11
По умолчанию

именно. Многопоточно.
Semechka вне форума Ответить с цитированием
Старый 20.12.2011, 02:56   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от Semechka Посмотреть сообщение
Прям так глухо?
Ты бы оформил код в посте как следует.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 20.12.2011, 08:30   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

1.ТС, из вашего кода ничего не ясно.
2.
Цитата:
Пробовал критические секции, и сихронайз, получается одинаковые картинки.
А это вам и не поможет. В вашем случае, картинки, вам отдаёт сервер.

У вас тут скорее проблема с вашим парсингом этих картинок.
Может не так делаете? А межет нагружаете сервер, и он отдаёт то, что хотите вы. Но 0-го размера, чтобы избавить себя от ваших запросов. А может место, куда ссылаются полученные ссылки - уже не существует?
Человек_Борща вне форума Ответить с цитированием
Старый 20.12.2011, 10:42   #7
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Цитата:
Пробовал критические секции, и сихронайз, получается одинаковые картинки.
А может просто image не очищает раз одинаковые?
bulldog5293 вне форума Ответить с цитированием
Старый 20.12.2011, 11:59   #8
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

мне не понятна сама структура как парсите, ну если уж так то хоть ту строку которую спарсили удалить надобно(скорее всего это и является вашей проблемой)
например строки:
Код:
<img src='1.jpg'></img>
<img src='2.jpg'></img>
<img src='3.jpg'></img>
чтобы взять вторую строку нужно первую удалить
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 20.12.2011, 14:02   #9
Semechka
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 11
По умолчанию

Это я в теме ищу одинаковые параметры, в программе совершенно разные. Проверял снифером запросы на получение капчи. Всё правильно сервер ему отдаёт. И правильно программа запросы get делает на капчу.
Даже нулевые капчи, если из снифера выдернуть запрос на них, и перейти на них в браузере, картинка загружается. Если работать однопоточно, всё отлично, многопоточно проблемно.
Semechka вне форума Ответить с цитированием
Старый 21.12.2011, 21:35   #10
Semechka
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 11
По умолчанию

Есть ещё какой нибудь способ получить картинку?
Semechka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменение размера изображения voron.kz Общие вопросы Delphi 2 06.09.2010 08:15
CKEditor ограничение размера изображения roma86 JavaScript, Ajax 0 20.03.2010 18:02
Увеличение размера изображения на 34% после сохранения в D7 Alex Cones Мультимедиа в Delphi 13 17.08.2009 22:06
Качественное изменение размера изображения... Dr. MefistO Мультимедиа в Delphi 5 15.07.2009 17:22
Изменения размера изображения в Image BredoZavR Мультимедиа в Delphi 0 02.07.2009 13:30