Кхм... Спасибо. Пользуюсь давно, а вот о возможностях без вашего пинка точно бы не догадался Еще раз спасибо, нашел нужную ревизию Что касается antigate: Code: 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://antigate.com/in.php',multi); http.Free; multi.Free; deletefile(filename); 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:=1 to 12 do begin sleep (5000); 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; end; result:='ERROR_TIMEOUT'; end; На 10.5.7, посл. работать не будет. 10.5.6 - работает.
IdSMTP1.Host:='smtp.mail.ru'; // IdSMTP1.Port:=2525; // IdSMTP1.Username:=login; // IdSMTP1.Password:=pass; // IdSMTP1.AuthenticationType:=atLogin; with IdMessage1 do begin From.Text :=Tema; // Recipients.EMailAddresses := [email protected]; // Subject := [email protected]; if FileExists(Edit1.Text) then TIdAttachment.Create(idmessage1.MessageParts,C:\Program Files\1.txt); Этот кусок отправет нам файло 1.txt на почту. Подскажите, а как прекрутить к коду, чтоб оно отпровляло не файл, а какую ни буть функцию...Т.Е. нопример скопированную в буфер обмена картинку, или текст? Будет ли синтаксическе правельно применить след выражение?: var Msg: TIdMessage; begin Msg.Subject:=?тема сообщения?; Msg.Recipients.EMailAddresses:[email protected]?; Msg.From.Adress:[email protected]?; Msg.Body.Text:=SetTextBuf(); Msg.Date:=StrToDate(?01.12.2004?);/ end;
мнеб без атача, чтоб текс письма и было содержание буфера... Совершенно верно, тогда вот так? - SomeStringData_Variable := Clipboard.AsText;
простой вопрос: какая процедура возвращает код ASCII из символа и наоборот,мне для сортировки нужно...=\
Вот, ищи наздоровье, даже комменты написал Code: ... const n = 9; \\кол-во елементов var i, j, max: word; mas: array[1..N, 1..N] of byte; \\наш массив begin max := mas[1,1]; for i:=1 to N do \\проходим по х for j:=1 to N do \\проходим по у if mas[i, j] > max then \\если текущий больше макс max := mas[i, j]; \\то он станет макс caption := IntToStr(max); end;
bmp12, вот еще, кстати, попробуйте функцию (переписывал под себя, чтобы капчу на диск не сохранять) Code: function recognize (itype: string; key: string; image : tmemorystream) : string; var ftype, s, id: string; i: integer; http: tidhttp; multi: tidmultipartformdatastream; begin if strpos (pchar (itype), 'jpg') <> nil then ftype := 'image/pjpeg'; if strpos (pchar (itype), 'gif') <> nil then ftype := 'image/gif'; if strpos (pchar (itype), 'png') <> nil then ftype := 'image/png'; multi := Tidmultipartformdatastream.Create; multi.AddFormField ('method', 'post'); multi.AddFormField ('key', key); multi.AddObject ('file', ftype, image, 'captcha.' + itype); http := tidhttp.Create; s := http.Post ('http://antigate.com/in.php', multi); http.Free; multi.Free; id := ''; if strpos (Pchar (s), 'ERROR_') <> nil then begin result := s; exit; end; if strpos (Pchar (s), 'OK|') <> nil then id := AnsiReplaceStr (s, 'OK|', ''); if id = '' then result := 'ERROR: bad captcha id'; for i := 1 to 20 do begin sleep (5000); http := tidhttp.Create; s := http.Get ('http://antigate.com/res.php?key=' + key + '&action=get&id=' + id); http.Free; if strpos (Pchar (s), 'ERROR_') <> nil then begin result := s; exit; end; if strpos (Pchar (s), 'OK|') <> nil then begin result := AnsiReplaceStr (s, 'OK|', ''); exit; end; end; result := 'ERROR_TIMEOUT'; end; Обращение: recognize ('jpg', ackey, image) - тип картинки / ас ключ / картинка в tmemorystream
граждане простой вопрос. есть функция- s := SendFile('localhost', '/1.php', 'путь до файла'); открываем файл через опендиалог и путь до файла загружается в листбокс (пример с:/хрень.rar) как сделать что бы этот же путь вставлялся в строчку 'путь до файла'
Hellsp@wn, спасибо! Народ так как все таки принять ответ html на winsock? Метод: Code: repeat dSize:=recv(s, recv1buf, 4096, 0); Memo1.lines.Add(recv1buf); until (dSize = 0) or (dSize = SOCKET_ERROR); Слишком долгий (то есть прога зависает на ~1 мин при этом коде)
Как организовать окошко, в котором выбирается файл на диске? Типа как при нажатии кнопки Browse в любом приложении. Передачу пути выбранного файла в переменную и поле ввода я прикручу сам.