[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. Sifon110

    Sifon110 New Member

    Joined:
    13 Mar 2011
    Messages:
    34
    Likes Received:
    1
    Reputations:
    0
    strm:=TMemoryStream.Create;
    Form1.IdHTTP1.Get(cw,strm);
    strm.Position:=0;
    strm.SaveToFile('img.jpg');
    strm.free;


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

    Ругается на это

    strm.SaveToFile('img.jpg');

    Помогите пожалуйста.
     
  2. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    Сейчас гружу в отдельном потоке, при большом тексте выдает ошибку работы с памятью.
    Загрузка происходит из базы Sql.
     
  3. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    есть еще какие либо обработчики событий?если да,попробуй начисто.
     
  4. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Чтото мне подсказывает что ответ кроеться в фразе.
     
  5. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    Нету.
    Работаю аккуратно в потоке.
    Видимо просто прикручу возможность грузить блоками а не огромной кучей.
    Подобие кнопки "Посмотреть еще".
     
  6. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    А ты вот зарегайся попробуй... Картинка у меня тоже есть :cool:
     
  7. t3cHn0iD

    t3cHn0iD Banned

    Joined:
    6 Apr 2009
    Messages:
    313
    Likes Received:
    63
    Reputations:
    66
    Никогда не понимал, зачем заниматься таким извращением и сохранять картинку в файл, если можно все гонять в памяти, тогда проблемы с доступом вообще не будет никогда.
     
  8. od1n0chka

    od1n0chka Member

    Joined:
    13 Dec 2010
    Messages:
    297
    Likes Received:
    47
    Reputations:
    1
    так а в чём тогда проблемма?
    парси переменные и отправляй постом их...
     
  9. od1n0chka

    od1n0chka Member

    Joined:
    13 Dec 2010
    Messages:
    297
    Likes Received:
    47
    Reputations:
    1
    вот полный листинг проги но что то она не хочет регить....
    мб кто то здесь поправит...
    PHP:
    unit Unit1;

    interface

    uses
      Windows
    MessagesSysUtilsVariantsClassesGraphicsControlsForms,
      
    DialogsStdCtrlsIdBaseComponentIdComponentIdTCPConnection,
      
    IdTCPClientIdHTTPExtCtrls,JPEGsSkinManager;

    type
      TForm1 
    = class(TForm)
        
    IdHTTP1TIdHTTP;
        
    Button1TButton;
        
    Image1TImage;
        
    Edit1TEdit;
        
    Edit2TEdit;
        
    Edit9TEdit;
        
    Button2TButton;
        
    Edit3TEdit;
        
    procedure Button1Click(SenderTObject);
        
    procedure Button2Click(SenderTObject);
      private
      
    cpt_idstring;
      
    dataTstringList;
        { Private 
    declarations }
      public
        { Public 
    declarations }
      
    end;

    var
      
    Form1TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(SenderTObject);
    var 
    S,captchastring;
    FS1 TFileStream;
    begin
    S
    :=IdHttp1.Get('http://freemail.ukr.net/q/reg');
    cpt_id:=copy(Spos('<input id="cpt_id" name="cpt_id" type="hidden" value="',S)+548);
    captcha:='http://freemail.ukr.net/q/captcha?cpt_id='copy(Spos('<input id="cpt_id" name="cpt_id" type="hidden" value="',S)+548);
    FS1:=TFilestream.create('captcha.jpg'FmCreate);
    idhttp1.Get(captcha,FS1);
    FS1.Free;
    Image1.Picture.LoadFromFile('captcha.jpg');
    end;

    procedure TForm1.Button2Click(SenderTObject);
    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.
     
  10. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Дак вот не регит то она изза того, что капча меняется каждый раз, когда вы к ней обращаетесь. Именно этот вопрос я и хотел для себя уточнить. К примеру в Вашем коде 1 раз обращаетесь, когда грузите страницу, чтобы спарсить ссыль, а 2 раз, когда сохраняете капчу.
     
  11. od1n0chka

    od1n0chka Member

    Joined:
    13 Dec 2010
    Messages:
    297
    Likes Received:
    47
    Reputations:
    1
    а вроде никак иначе нельзя зделать....
    иль если есть другие способы с радостью их узнаю)
     
    1 person likes this.
  12. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    1 раз ты обращаешься к стр, второй раз к самой каптче, проблема с кукисами e.t/c Как я выше и писал анализируй запросы.
     
  13. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Бро, я походу ваще криворукий, или торчок и хз что со мной, но ни куки, нихера не помогает :confused:
     
  14. enigma

    enigma Member

    Joined:
    10 Jul 2011
    Messages:
    80
    Likes Received:
    15
    Reputations:
    7
    cookie там не нужны )
     
  15. od1n0chka

    od1n0chka Member

    Joined:
    13 Dec 2010
    Messages:
    297
    Likes Received:
    47
    Reputations:
    1
    ну так напиши пример как должно быть, мне аж самому интересно стало как там регистрация проходит :) :)
     
  16. enigma

    enigma Member

    Joined:
    10 Jul 2011
    Messages:
    80
    Likes Received:
    15
    Reputations:
    7
    но что показывать то? все прекрасно регистрируется.
    чтоб не быть голословным, нацарапан в студии прога

    http://zalil.ru/33203257 и смотрите что она шлет.
    (больше времени заняли поиски хороший украинских прокси - ибо я и из России )

    http://s019.radikal.ru/i603/1205/24/93fbadefb14a.png
    http://s002.radikal.ru/i199/1205/15/1658d27a6ae4.jpg

    зы (я обобщаю) Как вы с помощью таких мощных визуальных компонентов как indy и VCL вообще испытываете какие либо трудность при работе с веб?
     
  17. Sifon110

    Sifon110 New Member

    Joined:
    13 Mar 2011
    Messages:
    34
    Likes Received:
    1
    Reputations:
    0
    Twebbrowser'у возможно передать кукисы? То есть установить свои. Если да, подскажите пожалуйста как, нигде не нашел примера. Благодарю.
     
  18. brain

    brain Elder - Старейшина

    Joined:
    4 Jul 2010
    Messages:
    249
    Likes Received:
    90
    Reputations:
    33
    В Label.Caption храниться значение(число), как после этого проверить что
    Label.Caption>100 ?
    Пробовал так strtoint(Label11.Caption)>100
     
  19. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Все правильно.
     
  20. od1n0chka

    od1n0chka Member

    Joined:
    13 Dec 2010
    Messages:
    297
    Likes Received:
    47
    Reputations:
    1
    if strtoint(Label11.Caption)>100 then

    begin
    showmessage('больше 100');
    end;
     
Thread Status:
Not open for further replies.