Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.05.31;
Скачать: [xml.tar.bz2];

Вниз

Файл занят другим процессом.   Найти похожие ветки 

 
HF-Trade   (2009-04-19 14:45) [0]

Помогие мне а?=)

Function Recognize(FileName: string; APIkey: string; is_phrase: Boolean; is_regsense: Boolean; is_numeric: Boolean; min_len: integer; 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://anti-captcha.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(5000);
 http:=TIdHttp.Create(nil);
 tmpstr:=http.Get("http://anti-captcha.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;

procedure TForm1.Button1Click(Sender: TObject);
var
tmpParams:TStringList;
Captcha:TMemoryStream;
...........
...........
begin
rsltedit.Text:="recognizing...";
tmpList.Clear;
Button1.Enabled:=false;

tmpParams:=TStringList.Create;
tmpParams.Add("login="+Login);
tmpParams.Add("firstname="+FistName);
tmpParams.Add("lastname="+LastName);

tmpList.Items.Text:=IdHTTP1.Post(урл,tmpParams);

tmpParams.Add(еще параметры);

Captcha:= TMemoryStream.Create;
idHTTP1.Get("урл",Captcha);
Captcha.SaveToFile(MyDir+"image.jpg");
Captcha.Destroy;

token:=recognize(MyDir+"image.jpg",apikeyedit.Text,false,false,false,0,0);

mpParams.Add("kapcha"+Token);

tmpList.Items.Text:=IdHTTP1.Post("урл",tmpParams);

tmpList.Items.SaveToFile(MyDir+"tpm.htm");

tmpParams.Free;

Button1.Enabled:=true;
end;

Первый раз все норм, на второй, вот тут ошибка- говорит что файл занят -
idHTTP1.Get("урл",Captcha);
Captcha.SaveToFile(MyDir+"image.jpg");
^^^^^^^^^^^^


 
Palladin ©   (2009-04-19 14:49) [1]

безобразный код... уволен.
а multi нужно все таки освободить. Пушкина на всех не хватит.


 
HF-Trade   (2009-04-19 14:51) [2]

пробовал я и multi.free нифига...


 
HF-Trade   (2009-04-19 14:53) [3]


> безобразный код... уволен.

Функция взята как есть с сайта антикапчи....


 
HF-Trade   (2009-04-19 14:57) [4]

вопрос снят))
Не везде free вставил))))


 
Anatoly Podgoretsky ©   (2009-04-19 17:53) [5]

> Palladin  (19.04.2009 14:49:01)  [1]

До увольнения.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.05.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
10-1158130464
GrBob
2006-09-13 10:54
2009.05.31
ITypeInfo и имя интерфейса-предка.


2-1240137953
HF-Trade
2009-04-19 14:45
2009.05.31
Файл занят другим процессом.


4-1210363535
Цукор5
2008-05-10 00:05
2009.05.31
сер.номер винчестера в Висте


2-1239895427
Igor2010
2009-04-16 19:23
2009.05.31
WordApplication1-компонент


2-1239804244
Xoluay
2009-04-15 18:04
2009.05.31
символьный массив





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский