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

    Life7 Banned

    Joined:
    14 Jun 2009
    Messages:
    150
    Likes Received:
    54
    Reputations:
    0
    798180
     
  2. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    1)потоки не тру?
    2)Это бы я вынес перед циклом.
    PHP:
    hHost := gethostbyname(PChar(kuda));
     
    hAddr.sin_family := PF_INET;
     
    hAddr.sin_port := htons(80);
     
    hAddr.sin_addr := pinaddr(hHost^.h_addr^)^;
     
    hTimeout.tv_usec := 0;
     
    hTimeout.tv_sec := mstimeout;
    я делфи не очень понимаю, но так вроде верно.
     
  3. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    А зачем тебе
    setsockopt(hSocket, SOL_SOCKET, SO_RCVTIMEO, @hTimeout, sizeof(ttimeval));

    ты же ничего не recv'ишь
     
  4. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    Если проблема что виснет комп, попробуй запустить ее отдельным потоком, а в основном добавь цикл из Application.ProcessMesssages (не помню как пишется, ну ты понял)
     
    1 person likes this.
  5. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    Здравствуйте, может кто-нибудь помочь хорошим примером или описанием, как работать с SSL, без инди и тп вещами)?
     
  6. TENMAX

    TENMAX Member

    Joined:
    20 Nov 2009
    Messages:
    0
    Likes Received:
    35
    Reputations:
    5
    Вообщем сделал чекер ОД, всё работает, всё хорошо, хочу усовершенствовать, сделать не одиночную проверку акка, а сразу список.

    Существуют такие строки:
    Data.Add('st.email='+Edit1.Text); // вписываю на сайт одноклассников логин
    Data.Add('st.password='+Edit2.Text); // вписываю пароль
    Как объединить мне в одно Мемо всё вместе в формате - логин:пароль, и чтобы всё это выводило в другое мемо (в данном случае Валид и Невалид)

    Сама программа:
    http://forum.antichat.ru/thread196772.html

    Заранее спасибо, если что пишите в асю 428810406
     
  7. JnK

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

    Joined:
    30 Mar 2007
    Messages:
    125
    Likes Received:
    21
    Reputations:
    0
    1. Цикл (While, For)
    2. Парсинг данных: Copy, Pos, DEL.
    объединить:
    memo1.Lines.Add(Edit1.Text+':'+Edit2.Text);

    Прогоняй в цикле список и при помощи пункта 2, подставляй логин и пароль, проблема может возникнуть только много запросов с 1 ИП, так что надо прокси, и наверное небольшие задержки между посылками запросов.
     
  8. JnK

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

    Joined:
    30 Mar 2007
    Messages:
    125
    Likes Received:
    21
    Reputations:
    0
    Может это:
    Тык
     
  9. InfectedM

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

    Joined:
    4 Nov 2007
    Messages:
    155
    Likes Received:
    12
    Reputations:
    0
    Как равномерно распределить 15 потоков по memo1
    Чтобы каждый поток работал с 1\15 частью memo1
    PS количество потоков и количество строк заранее не известно.
    В голову приходит одна чушь:(

    Объясните хотя бы на словах плиз)
     
    2 people like this.
  10. JnK

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

    Joined:
    30 Mar 2007
    Messages:
    125
    Likes Received:
    21
    Reputations:
    0
    Читать или записывать?
    Если читать, просто делишь N строк на 15 и потом считываешь с нужных позиций. типа 30 строк
    1 поток с 1 строки
    2 поток с 3 строки и т.д.

    Кол-во элементов на 1 поток = N div M
    ну можно еще
    N mod M = если не равно 0, то раскидать по 1 эл. на поток, тогда надо делать сдвиг позиции. у следующего потока, но можно оставить и так, тогда остаток заберет последний поток.

    С Записью вроде все это бессмысленно.
     
  11. denjf

    denjf Member

    Joined:
    12 Nov 2008
    Messages:
    88
    Likes Received:
    12
    Reputations:
    -1
    Как написать Ddos атаку на Delphi

    Что и как посылать?
     
  12. AlexTheC0d3r

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

    Joined:
    25 Jul 2008
    Messages:
    388
    Likes Received:
    179
    Reputations:
    18
    А в гугл или сначала почитать что такое DDoS, не?
     
  13. Si{R}ius

    Si{R}ius Member

    Joined:
    13 Nov 2008
    Messages:
    95
    Likes Received:
    36
    Reputations:
    0
    имеются несколько файлов f1, f2, f3.

    Procedure OpenFile1;
    begin
    assignfile(f1,'f1.dat');
    if FileExists('f1.dat')
    then reset(f1)
    else rewrite(f1);
    end;

    Как сделать так, чтобы не писать три процедуры для открытия файлов? Что это за тип f1 ? Какого типа должна быть переменная a , чтобы a:=f1 ?
     
  14. n1ghtstalker

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

    Joined:
    28 Sep 2008
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    можно в одной процедуре всё описать, только место f1 подставлять f2 и f3 соответсвенно.
    f1 - .dat (стандартный тип файлов для паскаля)

    как ты переменной собрался присваивать файл?
    ты вообще с файлами работал?-_-
    assign (f1,'f1.dat') - те ты ассоцируешь ключевому слову f1 - файл f1.dat
     
  15. Si{R}ius

    Si{R}ius Member

    Joined:
    13 Nov 2008
    Messages:
    95
    Likes Received:
    36
    Reputations:
    0
    Я хочу вместо
    Code:
    Procedure OpenFile(nomer: byte);
    begin
    case Nomer of
    1: begin assignfile(f1,'f1.dat');
        if FileExists('f1.dat') then reset(f1)
         else rewrite(f1); end;
    2: begin assignfile(f2,'f2.dat');
        if FileExists('f2.dat') then reset(f2)
         else rewrite(f2); end;
    3: begin assignfile(f3,'f3.dat');
        if FileExists('f3.dat') then reset(f3)
         else rewrite(f3); end;
    end;
    end;
    получить нечто похожее на
    Code:
    Procedure OpenFile(a: ff);
    begin
     case a of
      f1: str:='f1.dat';
      f2: str:='f2.dat';
      f3: str:='f3.dat';
     end;
     assignfile(a,str);
        if FileExists(str) then reset(a)
         else rewrite(a);
    end;
    я не знаю, как это правильно реализовать, так как раньше не сталкивался с этим.
     
  16. buket

    buket New Member

    Joined:
    7 Apr 2007
    Messages:
    21
    Likes Received:
    0
    Reputations:
    0
    подскажите как очистить одномерный массив от пустых значений(array of string)
     
  17. EndLeSSDre@M

    EndLeSSDre@M Banned

    Joined:
    18 Jul 2009
    Messages:
    142
    Likes Received:
    99
    Reputations:
    -5
    На сколько я помню, в VB это я делал так: находим пустой элемент, его удаляем, и смещаем все идущие за ним элементы на 1 пункт и т.д. думаю и на дельфи так же будет! пробуй


    PHP:
    for i:=1 to n do begin
    if a[i]:='' then do
    begin
        
    for t:=i+1 to n do
        
    begin
             a
    [t-1]:=a[t];
        
    end;
    n:=n-1;
    end;
    end;
     
    #5857 EndLeSSDre@M, 18 Apr 2010
    Last edited: 18 Apr 2010
  18. EndLeSSDre@M

    EndLeSSDre@M Banned

    Joined:
    18 Jul 2009
    Messages:
    142
    Likes Received:
    99
    Reputations:
    -5
    Подскажите, где трабла? проблема в том что если прокся не рабочая, то выдает ошибку сокета 10060 типа превышено время ожидания.... пробовал по всякому как видите, от этой ошибки не избавился.... надо чтобы если прокся не рабочая, он удалял ее из списка и переходил дальше проверять!

    PHP:
    var i,portinteger;
         
    ProxyList,params,Presponseres:tstrings;
         
    proxy,por,ip:string ;
         
    begin

      ProxyList
    :=tstringlist.Create;
      
    ProxyList.LoadFromFile('Proxy.txt');
      
    params:=TStringList.Create;
      
    Presponseres:=TStringList.Create;

      if 
    ProxyList.Text=''
      
    then begin
      ShowMessage 
    ('Список пуст');
      exit;
      
    end;

    for 
    i:= 0 to ProxyList.Count-do
    begin
      Proxy
    :=ProxyList.Strings[i];
      
    ip:=getip(Proxy);
      
    por:=getport(Proxy);
      
    port:=StrToInt(por);
      
    showmessage(proxy);
      
        try
        
    IdHTTP1.ProxyParams.ProxyServer:=ip;
        
    IdHTTP1.ProxyParams.ProxyPort:=port;
        
    IdHttp1.ReadTimeout:=10000;
        
    IdHTTP1.Get('http://getmyip.ru/');
        
    except
        ProxyList
    .Delete(i);
        
    ProxyList.SavetoFile('Proxy.txt');
        
    ProxyList.free;
        
    end;
        
    end;
       
        
    end;
    ну че блин... никто помочь не может чтоль(((( всем помогаю, а мне никто(((
     
    #5858 EndLeSSDre@M, 18 Apr 2010
    Last edited: 18 Apr 2010
  19. JnK

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

    Joined:
    30 Mar 2007
    Messages:
    125
    Likes Received:
    21
    Reputations:
    0
    Попробуй вместо f1,f2,f3 использовать массив :)
    тоесть примерно так:
    PHP:
    var
      
    f:array[1..3of textfile;

    Procedure OpenFile(adword);
    begin
      
    case a of
        1
    str:='f1.dat';
        
    2str:='f2.dat';
        
    3str:='f3.dat';
      
    end;
      
    assignfile(f[a],str);
      if 
    FileExists(strthen 
        reset
    (f[a])
       else 
         
    rewrite(f[a]);
    end;
    можно так:

    PHP:
    var
      
    f:array[1..255of textfile;

    Procedure OpenFile(idword);
    begin
      str
    :='f'+inttostr(i)+'.dat';
      
    assignfile(f[i],str);
      if 
    FileExists(strthen 
        reset
    (f[i])
       else 
         
    rewrite(f[i]);
    end;
    p.s. inttostr - перевод числа в строку (Delphi)
     
  20. JnK

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

    Joined:
    30 Mar 2007
    Messages:
    125
    Likes Received:
    21
    Reputations:
    0
    Вот, ошибка не вылетает, если программу запускать отдельно, тоесть не под средой разработки, проверял на этом коде.

    PHP:
    procedure TForm1.Button1Click(SenderTObject); 
    begin 
    IdHTTP1
    .ProxyParams.ProxyServer:='114.127.246.36'
    IdHTTP1.ProxyParams.ProxyPort:=8080
    try 
      
    IdHTTP1.Get('http://ya.ru'); 
      
    showmessage('Рабочий'); 
    except 
      showmessage
    ('Не рабочий'); 
      
    // удаляем из списка
    end
    end;

    Меня смутили эти строки, при ошибке сохранить и освободить список? если тебе надо только удалить ненужный эл. списка, и продолжить цикл.
    PHP:
        ProxyList.SavetoFile('Proxy.txt');
        
    ProxyList.free
     
    #5860 JnK, 18 Apr 2010
    Last edited: 18 Apr 2010
Thread Status:
Not open for further replies.