strm:=TMemoryStream.Create; Form1.IdHTTP1.Get(cw,strm); strm.Position:=0; strm.SaveToFile('img.jpg'); strm.free; Каждый раз вылазит Процесс не может получить доступ к файлу, так как файл уже занят другим процессом. Пробовал через try, ни как не помогает. Ругается на это strm.SaveToFile('img.jpg'); Помогите пожалуйста.
Сейчас гружу в отдельном потоке, при большом тексте выдает ошибку работы с памятью. Загрузка происходит из базы Sql.
Нету. Работаю аккуратно в потоке. Видимо просто прикручу возможность грузить блоками а не огромной кучей. Подобие кнопки "Посмотреть еще".
Никогда не понимал, зачем заниматься таким извращением и сохранять картинку в файл, если можно все гонять в памяти, тогда проблемы с доступом вообще не будет никогда.
вот полный листинг проги но что то она не хочет регить.... мб кто то здесь поправит... PHP: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, ExtCtrls,JPEG, sSkinManager; type TForm1 = class(TForm) IdHTTP1: TIdHTTP; Button1: TButton; Image1: TImage; Edit1: TEdit; Edit2: TEdit; Edit9: TEdit; Button2: TButton; Edit3: TEdit; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private cpt_id: string; data: TstringList; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var S,captcha: string; FS1 : TFileStream; begin S:=IdHttp1.Get('http://freemail.ukr.net/q/reg'); cpt_id:=copy(S, pos('<input id="cpt_id" name="cpt_id" type="hidden" value="',S)+54, 8); captcha:='http://freemail.ukr.net/q/captcha?cpt_id='+ copy(S, pos('<input id="cpt_id" name="cpt_id" type="hidden" value="',S)+54, 8); FS1:=TFilestream.create('captcha.jpg', FmCreate); idhttp1.Get(captcha,FS1); FS1.Free; Image1.Picture.LoadFromFile('captcha.jpg'); end; procedure TForm1.Button2Click(Sender: TObject); begin data:=Tstringlist.Create; data.Add('_submitted_regForm' + '1'); data.Add('lang'); data.Add('service' + 'freemail'); data.Add('backURL'); data.Add('safe' + 'please-validate-me'); data.Add('login' + edit1.Text); data.Add('password' + edit2.Text); data.Add('confirm_password' + edit2.Text); data.Add('name' + 'varlok'); data.Add('sex' + 'M'); data.Add('birth_day' + '1'); data.Add('birth_month' + '4'); data.Add('birth_year' + '1991'); data.Add('e_mail' + 'edit3.text'); data.Add('mobile'); data.Add('cpt_id' + cpt_id); data.Add('captcha' + edit9.Text); data.Add('action' + 'collect'); data.Add('key'); data.Add('_submit' + 'Next'); data.Add('next-bt' + 'Ðåãèñòðàöèÿ'); Idhttp1.Post('http://freemail.ukr.net/q/reg', data); end; end.
Дак вот не регит то она изза того, что капча меняется каждый раз, когда вы к ней обращаетесь. Именно этот вопрос я и хотел для себя уточнить. К примеру в Вашем коде 1 раз обращаетесь, когда грузите страницу, чтобы спарсить ссыль, а 2 раз, когда сохраняете капчу.
1 раз ты обращаешься к стр, второй раз к самой каптче, проблема с кукисами e.t/c Как я выше и писал анализируй запросы.
но что показывать то? все прекрасно регистрируется. чтоб не быть голословным, нацарапан в студии прога http://zalil.ru/33203257 и смотрите что она шлет. (больше времени заняли поиски хороший украинских прокси - ибо я и из России ) http://s019.radikal.ru/i603/1205/24/93fbadefb14a.png http://s002.radikal.ru/i199/1205/15/1658d27a6ae4.jpg зы (я обобщаю) Как вы с помощью таких мощных визуальных компонентов как indy и VCL вообще испытываете какие либо трудность при работе с веб?
Twebbrowser'у возможно передать кукисы? То есть установить свои. Если да, подскажите пожалуйста как, нигде не нашел примера. Благодарю.
В Label.Caption храниться значение(число), как после этого проверить что Label.Caption>100 ? Пробовал так strtoint(Label11.Caption)>100