Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.11.2011, 16:45
babay89 babay89 вне форума
Прохожий
 
Регистрация: 20.09.2011
Сообщения: 39
Репутация: -2571
По умолчанию Ошибка при обращении к файлу

Имеется код загрузки картики:
Код:
Большой кусок кода
Memo := TMemoryStream.Create;
idHTTP1.Get('http://ru6.darkorbit.bigpoint.com'+s4,Memo);
idHTTP1.Disconnect;
Memo.SaveToFile('image.gif');
Memo.Free;
captcha:=recognize('image.gif',edit6.Text,false,false,false,0,0);
Большой кусок кода
Первый раз качается все чОтко.
Но второй раз вылетает ошибка в это строке:
Код:
Memo.SaveToFile('image.gif');
Вот с такой ошибкой: http://floomby.ru/content/yHNnskxd30

Помогите решить.
Ответить с цитированием
  #2  
Старый 12.11.2011, 19:30
babay89 babay89 вне форума
Прохожий
 
Регистрация: 20.09.2011
Сообщения: 39
Репутация: -2571
По умолчанию

ап. Помогите плииз
Ответить с цитированием
  #3  
Старый 12.11.2011, 19:33
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Динамически создавай idHTTP1.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #4  
Старый 12.11.2011, 19:45
babay89 babay89 вне форума
Прохожий
 
Регистрация: 20.09.2011
Сообщения: 39
Репутация: -2571
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Динамически создавай idHTTP1.
А при чем он здесь?
Ответить с цитированием
  #5  
Старый 12.11.2011, 20:15
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от babay89
А при чем он здесь?
Я скрин с твоей ошибкой не могу просмотреть, там одна реклама лезет, короче все кроме скрина, объясни на словах что там? Может быть так, что твоя гика занята другим процессом и по этому не получается перезаписать ее.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #6  
Старый 12.11.2011, 20:17
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Убэдиль, просмотрел твой срЫн, ну так там же ясно написано, файло занято, значит твой рекогнайз его занимает и не отпускает.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #7  
Старый 12.11.2011, 20:34
babay89 babay89 вне форума
Прохожий
 
Регистрация: 20.09.2011
Сообщения: 39
Репутация: -2571
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Убэдиль, просмотрел твой срЫн, ну так там же ясно написано, файло занято, значит твой рекогнайз его занимает и не отпускает.
И как освободить?) P.S. рекогнайз - это сервис антигейт
Ответить с цитированием
  #8  
Старый 12.11.2011, 20:43
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Надо смотреть под капот. Рекогнайз на каком-то объекте построен, или там дллька?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #9  
Старый 12.11.2011, 21:01
babay89 babay89 вне форума
Прохожий
 
Регистрация: 20.09.2011
Сообщения: 39
Репутация: -2571
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Надо смотреть под капот. Рекогнайз на каком-то объекте построен, или там дллька?
Рекогнайз - это функция. Она использует только картинку(хотя не знаю). Кароче, вот код:
Код:
function form1.recognize(filename, apikey: string; is_phrase, is_regsense,
  is_numeric: boolean; min_len, max_len: integer): string;
var
ftype,tmpstr,captcha_id: String;
i: integer;
http: TIdHTTP;
multi: Tidmultipartformdatastream;
begin
if FileExists(filename)=false then begin result:='ERROR: file not found'; exit; end;

ftype:='image/pjpeg';
if strpos(Pchar(filename),'jpg')<>nil then ftype:='image/pjpeg';
if strpos(Pchar(filename),'gif')<>nil then ftype:='image/gif';
if strpos(Pchar(filename),'png')<>nil then ftype:='image/png';

multi:=Tidmultipartformdatastream.Create;
multi.AddFormField('method','post');
multi.AddFormField('key',apikey);
multi.AddFile('file',filename,ftype);
if is_phrase=true then multi.AddFormField('phrase','1');
if is_regsense=true then multi.AddFormField('regsense','1');
if is_numeric=true then multi.AddFormField('numeric','1');
if min_len>0 then multi.AddFormField('min_len',inttostr(min_len));
if max_len>0 then multi.AddFormField('max_len',inttostr(max_len));

http:=TIdHTTP.Create(nil);
tmpstr:=http.Post('http://antigate.com/in.php',multi);
http.Free;
captcha_id:='';
if strpos(Pchar(tmpstr),'ERROR_')<>nil then begin result:=tmpstr; exit; end;
if strpos(Pchar(tmpstr),'OK|')<>nil then captcha_id:=AnsiReplaceStr(tmpstr,'OK|','');
if captcha_id='' then result:='ERROR: bad captcha id';
for i:=0 to 20 do
  begin
  Application.ProcessMessages;
  sleep(2000);
  http:=TIdHttp.Create(nil);
  tmpstr:=http.Get('http://antigate.com/res.php?key='+apikey+'&action=get&id='+captcha_id);
  http.Free;
  if strpos(Pchar(tmpstr),'ERROR_')<>nil then begin result:=tmpstr; exit; end;
  if strpos(Pchar(tmpstr),'OK|')<>nil then
    begin
    result:=AnsiReplaceStr(tmpstr,'OK|','');
    exit;
    end;
  Application.ProcessMessages;
  end;
result:='ERROR_TIMEOUT';

end;
Ответить с цитированием
  #10  
Старый 12.11.2011, 22:31
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Пробуй:
Код:
function form1.recognize(filename, apikey: string; is_phrase, is_regsense,
  is_numeric: boolean; min_len, max_len: integer): string;
var
ftype,tmpstr,captcha_id: String;
i: integer;
http: TIdHTTP;
multi: Tidmultipartformdatastream;
begin
if FileExists(filename)=false then begin result:='ERROR: file not found'; exit; end;

ftype:='image/pjpeg';
if strpos(Pchar(filename),'jpg')<>nil then ftype:='image/pjpeg';
if strpos(Pchar(filename),'gif')<>nil then ftype:='image/gif';
if strpos(Pchar(filename),'png')<>nil then ftype:='image/png';

multi:=Tidmultipartformdatastream.Create;
multi.AddFormField('method','post');
multi.AddFormField('key',apikey);
multi.AddFile('file',filename,ftype);
if is_phrase=true then multi.AddFormField('phrase','1');
if is_regsense=true then multi.AddFormField('regsense','1');
if is_numeric=true then multi.AddFormField('numeric','1');
if min_len>0 then multi.AddFormField('min_len',inttostr(min_len));
if max_len>0 then multi.AddFormField('max_len',inttostr(max_len));

http:=TIdHTTP.Create(nil);
tmpstr:=http.Post('http://antigate.com/in.php',multi);
http.Free;
captcha_id:='';
if strpos(Pchar(tmpstr),'ERROR_')<>nil then begin result:=tmpstr; exit; end;
if strpos(Pchar(tmpstr),'OK|')<>nil then captcha_id:=AnsiReplaceStr(tmpstr,'OK|','');
if captcha_id='' then result:='ERROR: bad captcha id';
for i:=0 to 20 do
  begin
  Application.ProcessMessages;
  sleep(2000);
  http:=TIdHttp.Create(nil);
  tmpstr:=http.Get('http://antigate.com/res.php?key='+apikey+'&action=get&id='+captcha_id);
  http.Free;
  if strpos(Pchar(tmpstr),'ERROR_')<>nil then begin result:=tmpstr; exit; end;
  if strpos(Pchar(tmpstr),'OK|')<>nil then
    begin
    result:=AnsiReplaceStr(tmpstr,'OK|','');
    exit;
    end;
  Application.ProcessMessages;
  end;
result:='ERROR_TIMEOUT';
multi.free;
end;
P.S. Твой код оформлен очень ужасно.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #11  
Старый 13.11.2011, 00:37
babay89 babay89 вне форума
Прохожий
 
Регистрация: 20.09.2011
Сообщения: 39
Репутация: -2571
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
P.S. Твой код оформлен очень ужасно.
А кто сказал что он мой? был скачан с сайта антигейта
P.s. Все равно та же ошибка.

Последний раз редактировалось babay89, 13.11.2011 в 00:40.
Ответить с цитированием
  #12  
Старый 13.11.2011, 12:55
babay89 babay89 вне форума
Прохожий
 
Регистрация: 20.09.2011
Сообщения: 39
Репутация: -2571
По умолчанию

UP!!! Проблема актуальна.
Ответить с цитированием
  #13  
Старый 13.11.2011, 13:18
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

на крайний случай можно менять имена файлов)
Ответить с цитированием
  #14  
Старый 13.11.2011, 19:55
babay89 babay89 вне форума
Прохожий
 
Регистрация: 20.09.2011
Сообщения: 39
Репутация: -2571
По умолчанию

Цитата:
Сообщение от Pyro
на крайний случай можно менять имена файлов)
Каждый раз делать новый файл? Это извращение
Ответить с цитированием
  #15  
Старый 13.11.2011, 20:00
Аватар для @Rafa3L
@Rafa3L @Rafa3L вне форума
Начинающий
 
Регистрация: 09.11.2011
Адрес: Москва
Сообщения: 144
Версия Delphi: XE2
Репутация: 11216
По умолчанию

так ты разберись со своим функционалом, так прям поле чудес какое-то "угадай где баг". или весь свой сорс выложи.
__________________
Помогаю платно.
Помогаю иногда бесплатно.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:14.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025