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

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    Нет вы не правы, это у него обработка ошибок, то есть если произошла ошибка то объект уничтожается.
     
  2. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    уничтожается лист fLS а в следующей строке вызывается его метод `fLS.Count`. AV разве не поднималось?
    т.е. обрабатывая одно исключение создает второе

    и все таки я сомневаюсь что в этом случае нужно разрушать лист ... хотя хз какой там код дальше
     
  3. fenixelite

    fenixelite Banned

    Joined:
    7 Feb 2010
    Messages:
    294
    Likes Received:
    56
    Reputations:
    6
    +1. Смысл разрушать лист? Если исключение возникнет, то по вине FClient. И нужно уже с ним что-либо делать. И по поводу разрушение листа - при обращении к нему с след. строке опять возникнет исключение.
     
    #7823 fenixelite, 23 Feb 2011
    Last edited: 23 Feb 2011
  4. fenixelite

    fenixelite Banned

    Joined:
    7 Feb 2010
    Messages:
    294
    Likes Received:
    56
    Reputations:
    6
    Вопрос про дубли открыт. Дубли - строки в листе.
     
  5. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    ну если строки, то бери первую и прогоняй по списку как нашёл такую же удаляй. Как дошёл до конца списка оберёшь вторую строку.
     
  6. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    вот
    Code:
    function FiltDubl(List:TStrings):TStrings;
    var
      i:integer
    begin
      result:= TStringList.Create;
      for i	:=0 to List.Count-1 do
        if Resutl.IndexOf(List.Strings[i])=-1 then
          Result.Add(List.Strings[i]);
    end;
    
     
  7. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    list.Sorted := True;
     
  8. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    это отсортирует, но дубли оставит.
     
  9. Isaev

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

    Joined:
    25 Jul 2007
    Messages:
    120
    Likes Received:
    19
    Reputations:
    6
    Ужс... Вы бы хоть указатели передавали...
     
  10. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    так надо же сразу после создания объекта
    Вообще то объектная ссылка в дельфи это и есть указатель. Передается 4 байта а не список строк. Учим матчасть.
     
  11. 090808

    090808 Member

    Joined:
    15 Mar 2009
    Messages:
    171
    Likes Received:
    46
    Reputations:
    10
    list.Sorted := true;
    list.Duplicates := dupIgnore;
     
  12. fenixelite

    fenixelite Banned

    Joined:
    7 Feb 2010
    Messages:
    294
    Likes Received:
    56
    Reputations:
    6
    А еще вопрос есть. Как найти элемент зная его класс?(Webbrowser).
    Грубо говоря нужно тыкнуть(именно нажать!) на это:
    PHP:
    <a id="Id" class="ClassName" href="URL" rel="async">
     
  13. fenixelite

    fenixelite Banned

    Joined:
    7 Feb 2010
    Messages:
    294
    Likes Received:
    56
    Reputations:
    6
    Есть вот такой вот простой код.(в uses добавил ssl_openssl )
    PHP:
    HTTP.HTTPMethod('Get''https://twitter.com/');
    Но постоянно возвращает 301. Запросы ни в одном сниффере не отображаются почему-то...Подозреваю, что синапс в поле host приписывает 443 порт. У кого-нибудь есть варианты решения?
     
  14. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    А что лень почитать что значит 301 ошибка? у яши спроси и сразу поймёшь что 301 это редирект с адреса без ввв на адрес с ввв
     
  15. 090808

    090808 Member

    Joined:
    15 Mar 2009
    Messages:
    171
    Likes Received:
    46
    Reputations:
    10
    Насчёт ssl_openssl незнаю, но 301 ошибка возникает из за редиректа. В indy это решается разрешением HandleRedirects.

    Тоесть в инди это http.HandleRedirects:=true;
     
  16. fenixelite

    fenixelite Banned

    Joined:
    7 Feb 2010
    Messages:
    294
    Likes Received:
    56
    Reputations:
    6
    arnis, О боже. Может хватит ответов в стиле "Я ни разу с таким не сталкивался, но дай-ка зайду в гугл, посмотрю и, не проверив, запостю"... :\
    Хотя бы в браузере посмотрел, что там нет никакого редиректа на www.

    090808, я знаю, что такое 3хх коды возврата. В синапсе нет авторедиректа(насколько я знаю..) все ручками обрабатывается.

    Еще раз повторюсь:
    Но проверить это предположение не могу, т.к по каким-то причинам ни в одном сниффере запросы на https не отображаются.
     
  17. Chrome~

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

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    fenixelite, в THTTPSend (Synapse) есть такое свойство, как AddPortNumberToHost типа Boolean, которое по умолчанию имеет значение True. Если думаешь, что Synapse дописывает в поле Host порт, тогда установи данное свойство в значение False, и тогда уже точно Synapse ничего дописывать не будет.

    Принимай страницу, результат выводи в Memo. В таком случае можно будет без сниффера обойтись.
     
    #7837 Chrome~, 25 Feb 2011
    Last edited: 25 Feb 2011
    2 people like this.
  18. fenixelite

    fenixelite Banned

    Joined:
    7 Feb 2010
    Messages:
    294
    Likes Received:
    56
    Reputations:
    6
    Chrome~, Я страницу в файл выводил. Только мне нужны то мою запросы, а не ответ сервера.

    А догадка оказалась верной. Теперь все отлично стало. Огромное спасибо!
     
    #7838 fenixelite, 25 Feb 2011
    Last edited: 25 Feb 2011
  19. valeon

    valeon New Member

    Joined:
    26 Jun 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    хорошо, возможно не в том месте использую обработку ошибок.
    просто
    FClient.FIdFTP.List(fLS);
    if fLS.Count > 0 then // 12 строка
    все равно, иногда в стринглист ничего не заносится, даже через дебаггер. может sleep поставить после list? поможет?
     
  20. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Посмотрел твой кодец на прошлой странице.
    Проверяй на nil еще:
    if (Assigned(fLS)) and (fLS.Count > 0) then ...
    а не заносится - тут хз даже
    и Sleep ничего не изменит

    чтобы проверять на nil можно было оставляй FreeAndNil не меняй просто на Free - это на случай если ты уже поменял
     
Thread Status:
Not open for further replies.