Версия для печати темы (https://pro1c.org.ua/index.php?s=603434b93703bc18835846b0f599529c&showtopic=44553)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Функция "НайтиФайлы" и маска отбора (для вер. 8.3.10.2561)

Автор: AleksWhite7 06.03.18, 10:51

Здравствуйте!
Имеется огромное количество файлов (более 300 тыс)
Необходимо из всего этого хлама отобрать строго определённые по маске.
Использую функцию НайтиФайлы(Каталог, Маска);
Проблема в том, что если использую маски
B_*_01????????.xml и B_*_06????????.xml
файлы отбираются. Количество отобранных файлов больше нуля.

Но стоит их объединить в B_*_0[6,1]????????.xml или B_*_0[61]????????.xml или B_*_0[1-6]????????.xml
поиск прекращается. Количество отобранных файлов ноль.

В "Синтаксис-помошнике" написано

Цитата
"[" - класс символов. После открывающей квадратной скобки указывается последовательность символов. Паттерн соответствует любому из указанных символов. Можно указывать диапазон, используя "-". Описание класса символов завершается "]".


Где туплю или это баг 1С?
Спасибо.

Автор: Vofka 06.03.18, 11:10

А если попробовать [123456]?

Автор: AleksWhite7 06.03.18, 11:15

Vofka @ Сегодня, 11:10 * ,
Да пробовал.
Прикол в том, что как только в маску включаю скобки [], поиск прекращается 64000000.gif

Автор: podcast 06.03.18, 11:29

AleksWhite7 @ Сегодня, 11:15 * ,
Этот вариант самый правильный B_*_0[1-6]????????.xml, может ошибка не в скобках, попробуйте всё что перед ними убрать.

Автор: Vofka 06.03.18, 11:30

А может надо так НайтиФайлы(Каталог, Маска, Истина)?

Автор: Petre 06.03.18, 11:30

AleksWhite7 @ Today, 10:51 * ,
В Linux-е работаете или в MacOS?

Автор: AleksWhite7 06.03.18, 12:20

Vofka @ Сегодня, 11:30 * ,
Последний параметр поиск в подкаталогах. Он у меня равен Ложь.


Petre @ Сегодня, 11:30 * ,
В MS Windows.

ОкGoogle - не помогает sad.gif

Странно, что никто не использует НайтиФайлы со сложными масками.

В общем пока решил разбить задачу на две подзадачи. Искать не одним запросом, а двумя. Без использования скобок.
А потом результат объединю.

Как по мне это косяк 1С:Предприятие, но точно утверждать не могу.

Автор: Petre 06.03.18, 12:47

AleksWhite7 @ Today, 12:20 * ,
Приведу более полную выдержку из сп:

QUOTE
Для операционной системы MS Windows:
В строке маски, помимо обычных символов, допускается использование символа "*" (звездочка), обозначающего любое число произвольных символов, и "?" (знак вопроса), обозначающего один произвольный символ.

Для операционных систем Linux, MacOS:
В строке маски допускается использование следующих последовательностей:
- любой символ, допустимый в имени файла. Сопоставление указанных символов производится с учетом регистра;
- "*" (звездочка) - любая последовательность символов;
- "?" (знак вопроса) - любой символ;
- "[" - класс символов. После открывающей квадратной скобки указывается последовательность символов. Паттерн соответствует любому из указанных символов. Можно указывать диапазон, используя "-". Описание класса символов завершается "]". Для указания "-" в качестве символа класса нужно указать его первым или последним символом. Если после "[" указан знак "!", то класс описывает все символы, кроме указанных.

Автор: AleksWhite7 06.03.18, 13:19

Petre @ Сегодня, 12:47 * ,

Спасибо. Что-то в упор не видел строки "Для операционных систем Linux, MacOS: " faceoff.gif

Всё одно бок 1С sad.gif Разделять для разных ОС

Ну тогда разделяю на две маски и потом объединяю результаты.

Спасибо за помощь. Тему можно закрывать.

Автор: Petre 06.03.18, 13:29

QUOTE (AleksWhite7 @ 06.03.18, 13:19) *
Всё одно бок 1С sad.gif Разделять для разных ОС

В данном случае 1с просто не изобретает собственный велосипед, а использует при поиске файлов исключительно возможности ос.

Автор: AleksWhite7 06.03.18, 15:06

Теперь понятно.

А может подскажете как организовать отбор по дате создания?
А то поиск по маске и перебор и отсеивание по файл.ПолучитьВремяИзменения() получается очень долго.

Или создать отдельную тему?
Спасибо

Автор: logist 06.03.18, 15:51

Цитата(AleksWhite7 @ 06.03.18, 15:06) *
создать отдельную тему?

+

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua