[ 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. crazyserega1994

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

    Joined:
    25 Dec 2007
    Messages:
    27
    Likes Received:
    3
    Reputations:
    0
    Как использовать один и тот-же класс TidHTTP в 2 функциях? То-есть чтобы куки были одинаковые что в 1 функции, что в 2?
     
  2. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Объявить его глобально, или объявить глобальным куки менеджер а в функциях просто привязыват его к идхттп
     
    1 person likes this.
  3. Xcontrol212

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

    Joined:
    13 Feb 2008
    Messages:
    253
    Likes Received:
    110
    Reputations:
    7
    Code:
    Задан текстовый файл, содержащий фрагмент программы на Object Pascal. Найти все статические методы и поместить их в файл, состоящий из записей следующей структуры: имя метода – атрибут доступа( public, protected или private) – класс. Файл должен быть отсортирован по именам методов.	
    понять не могу
     
  4. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    [​IMG]

    Гул говорит всё норм :confused:
     
  5. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    procedure zzz(var a:integer);
    begin
    a:=5;
    end;
     
  6. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    GhostOnline, неа, тоже самое
     
  7. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    program test;
    var u:integer;
    procedure zzz(var a:integer);
    begin
    a:=5;
    end;
    begin
    zzz(u);
    end.
     
    1 person likes this.
  8. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    аха, надо до бегина писать, работат
     
  9. n1ghtstalker

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

    Joined:
    28 Sep 2008
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    вообще лучше и до vara объявлять все процедуры,используемые модули само собой.
     
  10. winlogon.exe

    winlogon.exe Active Member

    Joined:
    5 Jun 2009
    Messages:
    31
    Likes Received:
    129
    Reputations:
    13
    есть например текст:
    dfwegtrhfgerg
    nfgerggfhgergfh
    ergegfgeffhgfh
    efgehrgefgdfj5
    56juklo67u45rg
    gjm6hnm,n65h


    нужно сделать чтобы после каждого логина вставлялся текст напрмиер "@ololo.ru" и в конце ;'+password+'
    примерный результат:

    [email protected];123
    [email protected];555
    [email protected];43ygh4
    [email protected];34yger
    [email protected];bb654f
    gjm6hnm,[email protected];54yh7

    подскажите как сделать на delphi))
     
  11. EndLeSSDre@M

    EndLeSSDre@M Banned

    Joined:
    18 Jul 2009
    Messages:
    142
    Likes Received:
    99
    Reputations:
    -5

    PHP:
    program Project2;

    {
    $APPTYPE CONSOLE}

    uses
      SysUtils
    ;

    var
    n:string;
    password:string;
    begin
      password
    :='ferfew';
      
    assign(output,'output.txt');
      
    reset(input,'input.txt');
      while 
    not eof(input) do
      
    begin
      readln
    (input,n);
      
    append(output);
      
    writeln(n,'@ololo.ru;',password);
      
    close(output);
      
    end;
      
    close(input);

    end.
    пасс сделаешь рандомно... а так все норм робит
     
    #5831 EndLeSSDre@M, 15 Apr 2010
    Last edited: 15 Apr 2010
  12. n1ghtstalker

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

    Joined:
    28 Sep 2008
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    а пробовал с ц ограниченным циклом? :\ а то я даже и не знаю,по моему закрытие идёт а по всей видимости на практике не происходит.
     
  13. [stranger]

    [stranger] Member

    Joined:
    2 Feb 2010
    Messages:
    167
    Likes Received:
    29
    Reputations:
    4
    netstat в студию
     
  14. Pr0mo

    Pr0mo Member

    Joined:
    26 Nov 2009
    Messages:
    29
    Likes Received:
    31
    Reputations:
    4
    Ты при отсылки данных указываешь Connection:Close, то есть после закрытия очередного - каждый раз создается новое соединение. Можно открыть сокет, отправив Connection:Keep Alive, а дальше отсылать Get запрос только.
     
  15. RumShun

    RumShun Member

    Joined:
    27 Oct 2008
    Messages:
    283
    Likes Received:
    75
    Reputations:
    6
    Nightmarе, Pr0mo правильно говорит, добавь еще sleep и application.ProcessMessages.
     
  16. heretic1990

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

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    в общем такая проблема:
    делаю проверку на заполнение полей, и если в поле нет цифр, то выдаётся сообщение что поле не заполнено, если все поля заполнены то выдаётся соответствующее сообщение что "заполнено", но проблема в то что если все поля пусты и мы нажимаем на кнопку то вылетает ошибка. как избавиться от этого, ну или какие есть ещё варианты на проверку заполнения полей?

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    
    
      if not (Edit2.Text[1] in ['0'..'9']) then
      begin
        ShowMessage('Не заполнено поле 2');
        Edit2.SetFocus;
    
          if not (Edit1.Text[1] in ['0'..'9']) then
      begin
        ShowMessage('Не заполнено поле 1');
        Edit1.SetFocus;
    
          if not (Edit3.Text[1] in ['0'..'9']) then
      begin
        ShowMessage('Не заполнено поле 3');
        Edit3.SetFocus;
    
      end;
      end;
    
      end
    
      else
      begin
      ShowMessage('заполнено');
      end
    
    end;
     
  17. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Ошибка из-за того что ты обращаешься к несуществующему символу:
    Edit2.Text[1]
    Прежде чем обращаться к эдиту сделай проверку наподобие
    if Edit2.Text = '' then
    begin
    ShowMessage('Идите в жопу, поля снача заполнять надо!');
    exit;
    end;
    и так перед обращением к каждому эдиту

    Можно еще проверять по Length(Edit2.Text) = 0

    Ах да, если тебе нужно чтобы в полях было количество символов не больше чем N то выстави свойства у эдитов MaxLength равным N
     
    #5837 GhostOnline, 16 Apr 2010
    Last edited: 16 Apr 2010
  18. slesher

    slesher Banned

    Joined:
    29 Nov 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    IDC СМС Спамер...

    Всем привет! У меня такой вопрос...
    Есть оператор мобильной связи IDC. Так же у них на серваке есть сайт для отправления СМС-Сообщений на телефоны подключенные к их компании... Вот ссылка: http://sms.idknet.com... Отсюда я и собираюсь отправлять СМС спам...
    Немного подумав как это проще сделать я нашел самый оптимальный вариант, и перешел к действиям...
    1) Снифером HTTP Analyzer 5.0 отсканировал post запрос, который отправляется на файлик отбработчика: http://sms.idknet.com/sms.php
    Оказалось, что при отправке в обработчик поступают следующие параметры:
    prefix - Код оператора
    txtAddr - Номер телефона
    sum - Оставшееся колличество символов
    txtSM - Текст СМС Сообщения
    code - Код Капчи
    Submit2.x - Абсцысса кнопки "Отправить" (Оставить по умолчанию 35)
    Submit2.y - Ордината кнопки "Отправить" (Оставить по умолчанию 15)
    Submit2 - Надпись на кнопке (Оставить по умолчанию Отправить)

    Если все это дело отправлять Get запросом, то выходит что то вроде такова: http://sms.idknet.com/sms.php?prefix=777&txtAddr=12345&sum=160&txtSM=%C2%E2%E5%E4%E8%F2%E5+%F1%EE%EE%E1%F9%E5%ED%E8%E5.+%C4%EB%E8%ED%E0+%F1%EE%EE%E1%F9%E5%ED%E8%FF+%ED%E5+%E4%EE%EB%E6%ED%E0+%EF%F0%E5%E2%FB%F8%E0%F2%FC+160+%F1%E8%EC%E2%EE%EB%EE%E2.&code=&Submit2.x=35&Submit2.y=15&Submit2=%CE%F2%EF%F0%E0%E2%E8%F2%FC

    Но после нескольких эксперементов, убедился, что Get запросом тут не обойтись, пишет, что незаполнены поля...

    Я стал юзать Post...
    КОД:
    procedure TForm1.Button2Click(Sender: TObject);
    var data: tstringlist;
    ssylka,STR: string;
    begin
    idhttp1.HandleRedirects:=true;
    STR:=idhttp1.Get('http://sms.idknet.com');
    ssylka:='http://sms.idknet.com/sms.php';
    data:=tstringlist.Create;
    data.Add('code='+edit3.text);
    data.Add('prefix='+st);
    data.Add('Submit2=Отправить');
    data.Add('Submit2.x=27');
    data.Add('Submit2.y=6');
    data.Add('sum=160');
    data.Add('txtAddr='+edit1.text);
    data.Add('txtSM='+edit2.text);
    str:=idhttp1.Post(ssylka, data);
    showmessage(idhttp1.URL.URI);
    if pos('class="bad"', STR) <> 0 then
    label5.Caption:='Сообщение неотправленно!'
    else
    label5.Caption:='Сообщение отправленно!';
    end;

    И функция парса:
    function tform1.pars(T_, ForS, _T:string):string;
    var a, b: integer;
    begin
    Result:='';
    if (T_ = '') or (ForS='') or (_T = '') then
    exit;
    a:=pos(T_,ForS);
    if a = 0 then exit
    else
    a:=a+length(T_);
    fors:=copy(ForS, a, length(ForS) - a + 1);
    if b > 0 then
    result:=copy(ForS,1,b-1);
    end;

    Все вродебы не плохо, но осталась одна нерешенная проблема!...(( Что делать с капчей...
    Подумав, я не стал заморачиваться, и решил просто сделать так, чтобы капча выводилась в программу, и я сам ее каждый раз вводил...
    Код примерно такой:

    procedure TForm1.Label3Click(Sender: TObject);
    var _Captcha : TJPEGImage;
    F_body : TMemoryStream;
    id, a:string;
    MyIdHTTP : TIdHTTP;
    begin
    MyIdHTTP:=TIdHTTP.Create(Self);
    F_body := TMemoryStream.Create;
    _Captcha:=TJPEGImage.Create;
    try
    MyIdHTTP.Get('http://sms.idknet.com/code.php', F_body);
    F_body.Seek(0, soFromBeginning);
    _Captcha.LoadFromStream(F_body);
    Image1.Picture.Assign(_Captcha);
    Image1.Width:=_Captcha.Width;
    Image1.Height:=_Captcha.Height;
    finally
    F_body.Free;
    _Captcha.Free;
    end;
    end;

    Сама капча находится на главной страничке http://sms.idknet.com, но вытаскивается туда она со странички http://sms.idknet.com/code.php

    Все вроде бы замечательно, капчу программа в себя вытаскивает нормально, но когда я ее ввожу (и ввожу правильно) всеравно отправка не идет, и пишет что капча введена неверно!

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

    Что мне делать в таком случае? Подскажите пожалуйста!!!
     
  19. HakaR

    HakaR Active Member

    Joined:
    23 Jul 2009
    Messages:
    301
    Likes Received:
    200
    Reputations:
    3
    slesher
    idhttp + idcookiemanager + jpeg
    у мну работает, можешь предпоследнию строчку расскоментировать, что бы смотреть резултат...
    PHP:
    procedure TForm1.Button1Click(SenderTObject);
    var
    posttstringlist;
    captchatextresultstring;
    msTMemoryStream;
    begin
    ms 
    := TMemoryStream.Create;
    post:=tstringlist.Create;
    http.Get('http://sms.idknet.com/code.php'ms);
    ms.SaveToFile('captcha_temp.jpeg');
    ms.Clear;
    captcha.Picture.LoadFromFile('captcha_temp.jpeg');
    InputQuery('Captcha','Enter captcha',captchatext);
    post.Add('prefix=777');
    post.Add('txtAddr=13212');
    post.Add('txtSM=test');
    post.Add('sum=155');
    post.Add('code='+captchatext);
    result:=http.Post('http://sms.idknet.com/sms.php',post);
    if 
    AnsiPos('ОТПРАВЛЕНО'result) > 0 then
    showmessage
    ('Отправлено') else showmessage('ХУЙ!');
    //showmessage(result);
    //cookie.CookieCollection.Clear;
    ms.Free;
    end;
     
    #5839 HakaR, 16 Apr 2010
    Last edited: 16 Apr 2010
  20. [stranger]

    [stranger] Member

    Joined:
    2 Feb 2010
    Messages:
    167
    Likes Received:
    29
    Reputations:
    4
    нифига код не глючный! попробуй не себя ддосить, тогда все ок будет :)
    для того чтобы убить апач(под виндой) достаточно нескольких секунд флуда этой функцией из-под 20 потоков, при том что флуд идет не на поиск а на на индекс
     
    1 person likes this.
Thread Status:
Not open for further replies.