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

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    IdHTTP1.Response.RawHeaders.Text
     
  2. MaxFast

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

    Joined:
    12 Oct 2011
    Messages:
    575
    Likes Received:
    149
    Reputations:
    94
    Вопрос таков;
    Есть код:

    Code:
    for i:= 0 to 50 do
    idhttp1.get('mysite.com');
    
    Как сделать чтобы при каждом соединении брались прокси из файла?
     
  3. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    Code:
    ...
    var f:Text; i:integer; proxy:string;
    begin
      assign(f, 'proxy.txt');
      reset(f);
      for i:= 0 to 50 do
      begin
        readln(f, proxy);
        idhttp1.ProxyParams.ProxyServer := copy(proxy, 1, pos(':', proxy)-1);
        idhttp1.ProxyParams.ProxyPort := StrToInt(copy(proxy, pos(':', proxy), length(proxy)-pos(':', proxy)));
        idhttp1.get('mysite.com');
        if eof(f) then reset(f);
      end;
    end;
    
    Приблизительно так, если есть ошибки - сорри, писал "на коленке".
     
  4. MaxFast

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

    Joined:
    12 Oct 2011
    Messages:
    575
    Likes Received:
    149
    Reputations:
    94
    На константу Text ругается. Пробовал String присвоить, но тоже ошибки.
     
  5. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Замени на File. Но этот код будет брать только один прокси из файла. Оптимальнее будет работать с TStritngList.
     
  6. alexey-m

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

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    shadowrun, почему оптимальнее использовать TStritngList?
    если не в курсе как работает ReadLn, то не утверждай, что из файла будет читаться только первая строка
    Code:
      for i:= 0 to 50 do begin
        readln(f, proxy);
        ........
        if eof(f) then reset(f);
      end;
    
    такой цикл при каждой новой итерации будет читать новую строку и, при достижении конца файла, чтение начнется с первой строчки
     
  7. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Экономия времени, не заниматься велосипедописанием.
     
  8. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    пфф.... и где в моем коде ты увидел "велосипедописание"? или уже приемы последовательного чтения файла - изобретение велосипеда? :confused:
     
  9. MaxFast

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

    Joined:
    12 Oct 2011
    Messages:
    575
    Likes Received:
    149
    Reputations:
    94
    Разобрался с проксями, компилируется без ошибок.
    Просто не работает ничего. Ну да ладно. Спасибо.
     
  10. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Да, это прием но на более низком уровне, который тут не требуеться, помимо этого тут не проверяеться есть ли такой файл в системе, stringList делает это и есче много других вещей, вообще сколько кода вы готовы написать ради чтения файла зависит лишь от свободного времени и его ценности.
     
  11. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    то есть, вы хотите сказать, что если в TStringList попытаться загрузить несуществующий файл все обойдется? может я конечно и не прав, так как среды под рукой нет, но TStringList выкидывает точно такой же Exception, как и assign/assignfile
     
    1 person likes this.
  12. alexey-m

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

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    mironich, TStringList ну никак не проверяет существование файла, а лишь генерирует exception при отсутсвии такового, и велосипедами никто не занимается, в TStringList есть конечно плюшки, но они нах не нужны, когда нужно просто построчно читать из файла, особенно если файл весомого размера
     
  13. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    А что он должен делать при отсутствии? Правильно возбуждать исключение.
    Для этого TstringStream есть, ибо при файле весомого размера вышеуказанный способ тоже зависнет.
     
  14. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    ахах... вот ты шутник, на 18 гб файле точно не виснет, так как проверено, и что-то мне кажется что и на файлах в десятки раз больше ничего не случится. TStringStream справится с таким объемом без проблем?
     
  15. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Да. Справиться.
     
  16. alexey-m

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

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    TStringStream предоставляет последовательный доступ к информации, хранящейся в обычной строке, так что хз на счет больших объемов
     
  17. heJiZzZ

    heJiZzZ Member

    Joined:
    1 Jun 2009
    Messages:
    39
    Likes Received:
    18
    Reputations:
    10
    Задача такова, нужно проксифицировать комп (написать аналог proxifier, freecap и подобных), ЯП - делфи, можно ли сделать посредствами инди? Если нет, то подскажите в какую сторону копать. (сорцы freecap'a для меня слишком сложные, я думаю что можно как то проще все это организовать)
     
  18. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Копать в сторону работы с сетью и перехвата API функций.
     
  19. heJiZzZ

    heJiZzZ Member

    Joined:
    1 Jun 2009
    Messages:
    39
    Likes Received:
    18
    Reputations:
    10
    Слишком широко, по-конкретнее что нибудь предложишь? Может там библиотека какая есть или даже компонент...
     
  20. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    Привет всем. Может кто объяснить как выдернуть с сайта определённую строчку?
     
    #9240 firstfallen, 22 Jul 2012
    Last edited: 22 Jul 2012
Thread Status:
Not open for further replies.