[ 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. Mykola-bas

    Mykola-bas New Member

    Joined:
    24 Apr 2008
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    хочу зделать чекер аков.
    Вообшем ситема такая авторизация, смотрим код страницы, через рег.выражение ищем ссылку, и если она <> 1 или 0, то пишем мыло;пасс в файл и дальше....
    так вот:
    Code:
    procedure TForm1.Button2Click(Sender: TObject); 
     var Count: Integer; 
      RegExp: TRegExpr;
      Str1, Str2,ss,s: String;
      P, i,j,z:integer;
      HTMLDocument: IHTMLDocument2; 
      PersistFile: IPersistFile; 
     begin  Z:=StrToInt(edit3.Text);
     i:=0; 
     While i<= Memo1.Lines.Count do
       begin  if I<=Memo1.Lines.Count then
        begin   RegExp := TRegExpr.Create;
    RegExp.Expression := '[_a-zA-Z\d\-\.]+@([_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+)';
    if RegExp.Exec(Memo1.lines[i]) then
    begin 
       edit1.Text:= RegExp.Match[0]; 
       RegExp.Expression := ':([^\s]+)';  
       if RegExp.Exec(Memo1.lines[i]) then 
    begin    
    ss:=RegExp.Match[0];  
    Delete(ss, 1, 1); 
    end; 
    edit2.Text:=ss;  
    s:='http://vkontakte.ru/login.php?email='+edit1.text+'&pass='+edit2.text+'&HTTP/1.0';   
     WebBrowser1.Navigate(s);
       Sleep(Z);  
      HTMLDocument := WebBrowser1.Document as IHTMLDocument2;   
    Memo3.Text :=(HTMLDocument.all.Item(1, 0) as IHTMLElement).OuterHTML; 
     end;  
      I:=i+1;  
    end; 
     end;  
    end;
    авторизовуюсь, а код страницы немогу открыть.
    если
    Code:
    HTMLDocument := WebBrowser1.Document as IHTMLDocument2; 
      Memo3.Text := (HTMLDocument.all.Item(1, 0) as IHTMLElement).OuterHTML;
    
    зделать в отдельную процедуру то робит.
    что я зделал не так?
     
    #4221 Mykola-bas, 22 Sep 2009
    Last edited: 22 Sep 2009
  2. Nullsleep

    Nullsleep Member

    Joined:
    2 Jun 2009
    Messages:
    67
    Likes Received:
    26
    Reputations:
    0
    Code:
    var
      SR: TSearchRec;
      FindResult: Integer;
      s: string;
    begin
      FindResult := FindFirst('C:\lol\*.exe', faAnyFile, SR);
      if FindResult = 0 then
      begin
        s := SR.Name;
        WinExec(PChar(s), SW_SHOW);
      end;
    end;
    
     
    #4222 Nullsleep, 22 Sep 2009
    Last edited: 22 Sep 2009
    1 person likes this.
  3. miqo

    miqo Banned

    Joined:
    18 Nov 2008
    Messages:
    100
    Likes Received:
    0
    Reputations:
    -1
    Как можно обьявит переменную которую могут исползовать все формы приложения??
     
  4. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Тогда вот так

    Код:
    Code:
    var
      SR: TSearchRec;
      FindResult: Integer;
      s: string;
    begin
      FindResult := FindFirst('C:\lol\*.exe', faAnyFile, SR);
      if FindResult = 0 then
      begin
        s := SR.Name;
        WinExec(PChar('C:\lol\'+s), SW_SHOW);
      end;
    end;
    Так как если не указывать полный путь до файла то он не выполнится (если же он не в windows/system32)

    А SR.Name возвращает токо имя файла
     
    #4224 wolmer, 22 Sep 2009
    Last edited: 22 Sep 2009
    2 people like this.
  5. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Сверху какой либо формы (я в качестве примера взял form1)...
    Code:
    type
      TForm1 = class(TForm)
    ...
      private
        { Private declarations }
      public
        { Public declarations }
        i:integer;
      end;
    В другой форме объявляешь первую форму (или же ту в которой вписана переменная) и потом пишешь код
    К примеру:

    Form2

    Code:
    unit Unit2;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Form2;
    Form2.Create

    Code:
    Form1.I:=10;
    Showmessage(inttostr(Form1.I));
    Form1

    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;
    .........
      private
        { Private declarations }
      public
        { Public declarations }
        i:integer;
      end;
    .........
    
     
    #4225 wolmer, 22 Sep 2009
    Last edited: 22 Sep 2009
    1 person likes this.
  6. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Или глобальные переменные, но их не рекомендую юзать :)
     
  7. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    HandleRedirects объяви true
     
    1 person likes this.
  8. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Оба..)) Спасибо..!!! А заголовки как получить, ну чтобы там куки спарсить и т.д. Или куки теперь в IdHTTP1 хранятся..?! Но всё равно, где заголовки..!? :confused:
     
  9. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    заголовки вроде так: idHttp.Response.RawHeaders.GetText;

    Сохраненные в CookieManager кукисы можно посмотреть так:
    for i := 0 to Http.CookieManager.CookieCollection.Count - 1 do
    StrPage := StrPage + CookieManager.CookieCollection.Items.CookieText + #13#10;
     
  10. Mykola-bas

    Mykola-bas New Member

    Joined:
    24 Apr 2008
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    мне кто нить поможет?
     
    #4230 Mykola-bas, 23 Sep 2009
    Last edited: 23 Sep 2009
  11. miqo

    miqo Banned

    Joined:
    18 Nov 2008
    Messages:
    100
    Likes Received:
    0
    Reputations:
    -1
    S:string

    S:='123654
    798798798
    5896544465
    12598787256212
    698754'

    Как сделать чтобы каждый элемент массива был равен соответсвующей строке
     
  12. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    можно через жопу сделать
    sl : TStringList;

    sl = TStringList.Create();
    sl.text := s;
    s.lines.string[] будет тебе массив строк
    s.lines.count - кол-во строк.
     
    1 person likes this.
  13. miqo

    miqo Banned

    Joined:
    18 Nov 2008
    Messages:
    100
    Likes Received:
    0
    Reputations:
    -1
    у меня непоказыывает Lines
     
  14. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Значит так:
    Code:
    sl : TStringList;
    
    sl = TStringList.Create();
    sl.text := s;
    sl.string[] // будет тебе массив строк
    sl.count //- кол-во строк.
    slesh, чуть ошибся мне так кажется

    Да и кстати

    Code:
    S:='123654
    798798798
    5896544465
    12598787256212
    698754'
    Будет все в одну строку,
    Так будет правильней

    Code:
    S:='123654'+#13#10+
    '798798798'+#13#10+
    '5896544465'+#13#10+
    '12598787256212'+#13#10+
    '698754'
    (то есть в неск строк будет S)
    (в делфи #13#10 тоже самое что и в C++/php/perl это \r\n то есть перенос на след. строку :) )
     
    #4234 wolmer, 23 Sep 2009
    Last edited: 23 Sep 2009
  15. Mykola-bas

    Mykola-bas New Member

    Joined:
    24 Apr 2008
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    есть процедура
    Code:
    procedure TForm1.html_kod(HTMLDocument: IHTMLDocument2);
    var    HTMLDocument: IHTMLDocument2;
     begin
      memo3.Clear;   
      HTMLDocument := WebBrowser1.Document as IHTMLDocument2;  
     Memo3.Text := (HTMLDocument.all.Item(1, 0) as IHTMLElement).OuterHTML; 
     end;
    как ее правильно вызвать отсюда ?
    Code:
    procedure TForm1.Button2Click(Sender: TObject);  var  RegExp: TRegExpr;  ss,s: String;  i,j,z:integer;  HTMLDocument: IHTMLDocument2;  begin  Z:=StrToInt(edit3.Text);  i:=0;  While i<= Memo1.Lines.Count do  begin    if I<=Memo1.Lines.Count then begin   RegExp := TRegExpr.Create;    RegExp.Expression := '[_a-zA-Z\d\-\.]+@([_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+)';   if RegExp.Exec(Memo1.lines[i]) then begin    edit1.Text:= RegExp.Match[0];    RegExp.Expression := ':([^\s]+)';    if RegExp.Exec(Memo1.lines[i]) then begin    ss:=RegExp.Match[0];   Delete(ss, 1, 1); end;    edit2.Text:=ss;      s:='http://vkontakte.ru/login.php?email='+edit1.text+'&pass='+edit2.text+'&HTTP/1.0';      WebBrowser1.Navigate(s);   Sleep(Z);  end;    I:=i+1;  end;  end;  end;
     
  16. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Есть символ '
    Нужно его программно запихнуть к примеру в Edit1
    Как это сделать? (естественно edit1.text:=''' не помогает :D )
     
  17. RumShun

    RumShun Member

    Joined:
    27 Oct 2008
    Messages:
    283
    Likes Received:
    75
    Reputations:
    6
    edit1.text:=char(кодсимвола) или chr(код символа)
     
  18. Nullsleep

    Nullsleep Member

    Joined:
    2 Jun 2009
    Messages:
    67
    Likes Received:
    26
    Reputations:
    0
    wolmer, чтобы написать апостроф, нужно написать 2 апострофа :D
    Code:
      Edit1.Text := '''';
      Edit1.Text := 'wolmer''s quote';
    
    updt
    А вообще вместо этого
    edit1.text:=char(кодсимвола) или chr(код символа)
    можно сделать проще: Edit1.Text := #код;
     
    #4238 Nullsleep, 25 Sep 2009
    Last edited: 25 Sep 2009
    1 person likes this.
  19. Killerkod

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

    Joined:
    1 Aug 2007
    Messages:
    178
    Likes Received:
    113
    Reputations:
    0
    Mykola-bas, процедура у тебя немного неправильная.
    Ты два раза объявляеш одну переменную - HTMLDocument.
    Убери строку Var, сразу идет бегин
    Объявляй как TForm1.html_kod(Имя дока или файла что у тебя там)
    Должно работать
     
  20. Seregakz

    Seregakz New Member

    Joined:
    13 Jun 2009
    Messages:
    31
    Likes Received:
    1
    Reputations:
    0
    народ как сделать на винапи при пост запросе, передачу куков!???
     
Thread Status:
Not open for further replies.