Следующий рекурсивный алгоритм выбирает все комбинации k-элемента от упорядоченного множества:
i
из Вашей комбинации i
с каждой из комбинаций k-1
элементы, выбранные рекурсивно из набора элементов, больше, чем i
. Выполняют итерации вышеупомянутого для каждого i
в наборе.
важно, чтобы Вы выбрали остальную часть элементов как больше, чем i
, для предотвращения повторения. Этот путь [3,5] будет выбран только однажды, как [3] объединенный с [5], вместо дважды (условие устраняет [5] + [3]). Без этого условия Вы получаете изменения вместо комбинаций.
Прочтите об этом на http://www.swissdelphicenter.ch/en/showarticle.php?id=1
EIdConnClosedGracefully является исключение, сигнализирующее о том, что соединение было закрыто другая сторона намеренно. Это не так же, как разорванное соединение, которое вызовет ошибку сброса соединения. Если другая сторона закрыла соединение и сокет читается или написано, EIdConnClosedGracefully будет воспитан Инди. Это похоже на попытку читать или писать в файл, который был закрыт без ваши знания.
В некоторых случаях это настоящее исключение и ваш код должен с этим справиться. В другие случаи (обычно серверы) это это нормальная часть функционирования протокол и Инди обрабатывает это исключение для вас. Хотя Инди ловит при запуске в IDE отладчик будет запущен первым. Вы можете просто нажать F9, чтобы продолжить и Indy обработает исключение, но постоянные остановки во время отладка может сильно утомлять. В случаи, когда Инди ловит исключение, ваши пользователи никогда не увидят исключение в вашей программе, если оно не запускается из среды IDE.