Удаление строки из файла по условию
-
Искал похожее на форуме, но нужного ответа не нашел, вот у меня например создан ресурс со списком прокси, какие-то прокси не работают. Как мне сделать так, чтобы при ошибке прокси - удалять ее из файла? Вроде бы у меня в логике это прописано, но удаляются все записи почему-то - http://prntscr.com/dsk53r
-
@zhevlakov галочка запись на ресурсе стоит? И если вы используете ручное удаление ресурчов, кошичество удачных/неудачных использований желательно делать больше одного
-
Да, отлично помогло! Спасибо большое! Есть не очевидные вещи, которые без помощи не решаются)
-
Как мне сделать так, чтобы при ошибке прокси - удалять ее из файла?
Вообще лучше дать БАС завершать поток, если прокси не работает. При таком подходе все происходит автоматом, а так приходится городить кучу кода.
Действие "Удалить Текущий Элемент" удаляет строки из файла мгновенно и не зависимо от галки "Запись" и количества удачных и неудачных использований ресурса. У меня так. Если у вас это не работает, то это баг, приложите пожалуйста минимальный проект. Вот мой.
-
@support В итоге я просто пришел к перебору списка проксей и автоматическому удалению через галочку Запись в ресурсе, проект пока не закончен, застрял на том, что не выдает ошибку при загрузке страницы, просто черный экран и переходит к шагу ввода текста.0_1483858473763_GoogleParse.xml
-
- Почему пропускает ошибку?
Цикл стоит внутри блока игнорирования ошибок, это означает, что при первой ошибке точка выполнения перейдет на первое действие за блоком игнорировать ошибки и цикл завершится. Это описано в вики http://wiki.bablosoft.com/doku.php?id=ru:how_to_catch_errors
"Блок «Игнорировать Ошибки» может содержать несколько блоков, если один из них выполнится с ошибкой, то следующие за ним будут пропущены"
- Фильтрация прокси производится БАС автоматически.
-
@support 1. То есть блок игнорирования ошибки нужно ставить после действия, которое приведет к нему? Но в таком случае сработает ведь Fail и до блока отлавливания ошибки не дойдет.
- Не понял насчет автоматическую фильтрацию прокси, если этот блок можно заменить просто загрузкой URL, то на каком этапе я подключу прокси?
P.S. Спасибо большое за оперативную поддержку!
- Не понял насчет автоматическую фильтрацию прокси, если этот блок можно заменить просто загрузкой URL, то на каком этапе я подключу прокси?
-
@zhevlakov
1). Нет, блок игнорирования ошибок нужно ставить внутри цикла.
2). Ок, можно заменить подключением прокси и загрузкой урл.
-
@support http://prntscr.com/dswdvv как-то так?
-
@zhevlakov Тогда переменной WAS_ERROR нужно присвоить первоначальное значение в true.
Либо использовать действия прокси и загрузить без циклов и без игнорирования ошибок.
-
@support Все, я понял смысл при Fail будет браться другой прокси и все заново. А каким образом тогда можно сделать так, чтобы удачные прокси не удалялись из файла, сейчас я в ресурсе поставил галочку Запись, если я поставлю Max Succes Usage больше одного, то другие потоки возьмут эту же прокси, что тоже не есть хорошо, при Max Fail Usage = 1, строка прокси будет удаляться пр и Fail, верно? Как мне добиться того, чтобы остались в файле только рабочие прокси? 0_1483861095426_GoogleParse.xml Вот последние правки
-
@zhevlakov Тогда можно перейти на ручное удаление ресурса.
- Убрать галку запись
- Удалять ресурс в случае ошибки.
-
@support Спасибо! Так и сделаю!