Delphi7 помогите плиз...

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by ALeXX&7, 17 Jan 2011.

  1. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    Всем доброго времени суток! пишу парсер внеш.урлов из заданных сайтов так вот суть проблемы : как реализовать одновременный переход по сайтам, список которых в мемо1 . Для одного сайта получается, а для нескольких ни..ера((. Новичок в этом деле. Сильно не пинайте.
    p.s.: писал в нужную тему для начинающих, молчок. поэтому решил здесь, т.к. помощь очень сильно нужна
     
  2. 090808

    090808 Member

    Joined:
    15 Mar 2009
    Messages:
    171
    Likes Received:
    46
    Reputations:
    10
    var
    i:integer;
    begin
    for i:=0 to memo1.lines.count-1 do
    http.get(memo1.lines);
     
    3 people like this.
  3. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0


    Так делал, в итоге ошибки не выдает, но и считывает только первый url (( . может что-нить зациклить еще надо?.... Вообщем вот часть кода:
     
  4. dirtybiz

    dirtybiz New Member

    Joined:
    28 Oct 2010
    Messages:
    28
    Likes Received:
    3
    Reputations:
    0
    >>одновременный переход по сайтам

    Читай в инете про потоки(TThread) и критические секции.
     
  5. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    Читал, экспериментировал, но без толку(. а по конкретной ситуации может подскажите выход..?
     
  6. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    неужели никто подобного не делал?)
     
  7. 1n0y

    1n0y Active Member

    Joined:
    9 May 2009
    Messages:
    272
    Likes Received:
    276
    Reputations:
    2
    ошибка банальна:

     
  8. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    begin не катит(, дальше возникают ошибки:

     
  9. 1n0y

    1n0y Active Member

    Joined:
    9 May 2009
    Messages:
    272
    Likes Received:
    276
    Reputations:
    2
    дай весь код. я нехера не понимаю так.
     
  10. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    вот весь код:

     
  11. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    Тут опечатался) в одном моменте, правильно будет:
     
  12. 1n0y

    1n0y Active Member

    Joined:
    9 May 2009
    Messages:
    272
    Likes Received:
    276
    Reputations:
    2
    сломал себе весь мозг, пока приводил код в читаемый вид.

    вобщем, если ошибка тут:

    то ты забыл пару end; перед ексэптом. что пишет компилятор? какая ошибка?
     
  13. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    [Ошибка] Unit1.pas(90): 'END' expected but 'EXCEPT' found

    [Ошибка] Unit1.pas(94): '.' expected but ';' found

    [Фатальная Ошибка] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
     
  14. 1n0y

    1n0y Active Member

    Joined:
    9 May 2009
    Messages:
    272
    Likes Received:
    276
    Reputations:
    2
    [Ошибка] Unit1.pas(90): 'END' expected but 'EXCEPT' found

    НУЖЕН END а у тебя там EXCEPT. добавляй энде перед эксептом пока ошибка не пропадёт.
     
  15. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    пробовал. безрезультатно(
     
  16. 1n0y

    1n0y Active Member

    Joined:
    9 May 2009
    Messages:
    272
    Likes Received:
    276
    Reputations:
    2
    значит еще энды добавляй. там их как минимум 2 штуки нужно, если я не ошибаюсь.
     
  17. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    это тоже пробовал, нуль эффекта....
    Ладн, обойдусь одним потоком.... Спасибо за помощь.
     
  18. CheatXX

    CheatXX New Member

    Joined:
    8 Jun 2009
    Messages:
    154
    Likes Received:
    2
    Reputations:
    0
    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,IdHTTP, StdCtrls;
    
    type
      TForm1 = class(TForm)
        mmo1: TMemo;
        mmo2: TMemo;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
      type
      TTest = class(TThread)
      private
    
      protected
        procedure Execute; override;
      public
          url:string;
      end;
    
    var
      Form1: TForm1;
      threadcount:Integer;
    
    implementation
    
    {$R *.dfm}
    
    procedure TTest.Execute;
    var i:integer;s:string;http:TIdHTTP;
    begin
      http:=TIDHTTP.Create(nil);
      http.HandleRedirects:=true;
      http.Get(url);
      form1.mmo2.Lines.Add('Ok - '+url);
      http.Free;
      Dec(threadcount);
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var t:TTest;
    begin
    while mmo1.Lines.Count > 0 do
      begin
        Application.ProcessMessages;
        while threadcount < 5 do
        begin
          Application.ProcessMessages;
          t := TTest.Create(true);
          t.FreeOnTerminate := true;
          t.url := mmo1.Lines.Strings[0];
          t.Resume;
          mmo1.Lines.Delete(0);
          Inc(threadcount);
        end;
      end;
    end;
    
    end.