Делфи7/memo

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

  1. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    50
    Likes Received:
    1
    Reputations:
    0
    Всем здравствуйте! Подскажите пожалуйста следующее:
    есть список сайтов (сайт 1, сайт 2, сайт3, сайт4) как программно показать что, если сайт 1 не удовлетворяет условию нужно перейти к сайту 2. не пойму как показать что нужно пропустить сайт1(... Заранее Большое спасибо
     
  2. fl00der

    fl00der Moderator

    Joined:
    17 Dec 2008
    Messages:
    1,026
    Likes Received:
    311
    Reputations:
    86
    Проходи щетчиком по всему массиву строк, если сайт не удовлетворил, преращиваешь щетчик.
     
    _________________________
    1 person likes this.
  3. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    50
    Likes Received:
    1
    Reputations:
    0
    Пробовал так:

    чет не хочет...
     
  4. Cock3r

    Cock3r New Member

    Joined:
    19 Jan 2011
    Messages:
    14
    Likes Received:
    3
    Reputations:
    0
    continue;
     
  5. S[N]EP

    S[N]EP Elder - Старейшина

    Joined:
    29 Aug 2008
    Messages:
    102
    Likes Received:
    28
    Reputations:
    10
    а какому условию если не секрет? на сайте должно быть какое-то слово?
     
    #5 S[N]EP, 24 Jan 2011
    Last edited: 24 Jan 2011
  6. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    50
    Likes Received:
    1
    Reputations:
    0
    должна существовать 190-ая строка html-кода
     
  7. S[N]EP

    S[N]EP Elder - Старейшина

    Joined:
    29 Aug 2008
    Messages:
    102
    Likes Received:
    28
    Reputations:
    10
    сорри за быдлокодерство, но поидее должно работать:
    (нужно добавить ещё 1 мемо пусть оно будет memo3 и добавить ему scrollbar'ы)

    Code:
    var i:integer;
    begin
    for i:=0 to memo2.lines.count-1 do begin
    memo3.clear();
    memo3.text=idhttp1.get(memo2.lines[i]);
    if memo3.lines.count >= 190 then memo1.lines.add(memo3.lines[190]);
    end;
    end.
    
    p.s. писал в блокноте, проверить в данный момент не могу) делфи рядом нет)
     
    #7 S[N]EP, 24 Jan 2011
    Last edited: 24 Jan 2011
  8. Freedom

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

    Joined:
    2 Jul 2007
    Messages:
    38
    Likes Received:
    92
    Reputations:
    8

    можно без мемо

    Code:
    var i:integer;
    st:Tstrings;
    
    begin
    st:=TstringList.create;
    for i:=0 to memo2.lines.count-1 do begin
    st.clear;
    st.text=idhttp1.get(memo2.lines[i]);
    if st.strings[189] = "чему то там" then кидаем memo2.lines[i] в нужное место. 
    end;
    end.
    
     
  9. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    50
    Likes Received:
    1
    Reputations:
    0
    как только не пробывал, не хочет пропускать сайты, в которых нету 190-стоки и всё((, при списке из сайтов, в которых она имеется работает нормально... Вообщем выложу код, посмотрите плиз что в нем не так...
    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
      IdTCPClient, IdHTTP, SyncObjs, ComCtrls;
    
    
    type
      TForm1 = class(TForm)
        IdHTTP1: TIdHTTP;
        Button1: TButton;
        Memo1: TMemo;
        Memo2: TMemo;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    TNewThread = class(TThread)
      private
    
        { Private declarations }
      protected
        procedure Execute; override;
      end;
    
    var
      Form1: TForm1;
      NewThread : TNewThread;
      CriticalSection: TCriticalSection;
      IdHTTP1: TIdHTTP;
      d: tstringlist;
      i: integer;
    implementation
    
    {$R *.dfm}
    
    procedure TNewThread.Execute;
    var
      IdHTTP1: TIdHTTP;
      d: tstringlist;
      s,t: string;
    begin
      CriticalSection.Enter;
      i:=0;
      while (s < t)and(Terminated = False) do
       form1.Button1.Click;
       sleep(20);
       for i:=1 to 5766 do
      form1.Button1.Click;
      CriticalSection.Leave;
       form1.Button1.Click;
    
    end;
    
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
    d: tstringlist;
    s,t: string;
    
    NewThread: TNewThread;
    begin
    NewThread:=TNewThread.Create(true);
      NewThread.FreeOnTerminate:=true;
      NewThread.Priority:=tpLower;
      NewThread.Resume;
    
    t:=memo2.Lines.Text;
    t:=memo2.Lines[i];
    d:= tstringlist.Create;
    d.Text:=idhttp1.get(t);
    s:=d.Strings[190];
    delete (s,190,17);
    memo1.lines.Add(s);
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    CriticalSection:=TCriticalSection.Create;
    end;
    
    end.
     
  10. FairHawk

    FairHawk Member

    Joined:
    16 Mar 2010
    Messages:
    46
    Likes Received:
    6
    Reputations:
    0
    Проверь что у тебя в d: tstringlist; приходит, после:
    Code:
    d.Text:=idhttp1.get(t);
     
  11. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    50
    Likes Received:
    1
    Reputations:
    0
    Извиняюсь за нубский вопрос, каким образом проверить? вроде ссылки и приходят