Доброго времени суток.
Есть блокнот(*.txt) в котором 46.000 строк текста в формате ("C:\Users\**\НазваниеНоменклатуры.pdf") все документы pdf как путь, есть справочник номенклатуры в котором строки НазваниеНоменклатуры.
Нужно программно сравнить строки НазваниеНоменклатуры и строку ("C:\Users\**\НазваниеНоменклатуры.pdf"). И если они хоть как-то равны вытащить путь этой строки ("C:\Users\**\НазваниеНоменклатуры.pdf"). Как это сделать?
Есть блокнот(*.txt) в котором 46.000 строк текста в формате ("C:\Users\**\НазваниеНоменклатуры.pdf") все документы pdf как путь, есть справочник номенклатуры в котором строки НазваниеНоменклатуры.
Нужно программно сравнить строки НазваниеНоменклатуры и строку ("C:\Users\**\НазваниеНоменклатуры.pdf"). И если они хоть как-то равны вытащить путь этой строки ("C:\Users\**\НазваниеНоменклатуры.pdf"). Как это сделать?
По теме из базы знаний
- Поиск по подстроке с индикатором исполнения
- Добавление функционала "поиск по строке" для динамического списка управляемого приложения на основе Подбора в УНФ
- Нетривиальные подходы в решении всем известных проблем: ускорение «больших» документов в 1С и ускорение поиска по подстроке. Как добиться эффекта в разы?
- Поиск по подстроке в таблице значений. По принципу "начинается с"
- Поиск строки во всей базе данных
Найденные решения
НазваниеНоменклатуры = Элементы.Номенклатура.ВыделенныйТекст;
ТекстовыйДокумент=Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать("C:\Users\**\list.txt");
КолСтрок=ТекстовыйДокумент.КоличествоСтрок();
Для л=1 По КолСтрок Цикл
Строка = ТекстовыйДокумент.ПолучитьСтроку(л);
Если СтрНайти(ВРег(Строка), ВРег(НазваниеНоменклатуры)) > 0 Тогда
Сообщить(Строка);
КонецЕсли;
КонецЦикла;
ТекстовыйДокумент=Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать("C:\Users\**\list.txt");
КолСтрок=ТекстовыйДокумент.КоличествоСтрок();
Для л=1 По КолСтрок Цикл
Строка = ТекстовыйДокумент.ПолучитьСтроку(л);
Если СтрНайти(ВРег(Строка), ВРег(НазваниеНоменклатуры)) > 0 Тогда
Сообщить(Строка);
КонецЕсли;
КонецЦикла;
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) txt тянем в ТЗ добавляем столбик в ТЗ в которую: Парсим строку с путем, получаем последний элемент массива, парсим его по точке, берем первый элемент. Таблица с нужным набором данных готова.
Дальше можно запросом соединять строки ТЗ с НазваниеНоменклатуры, (По Подобно).
И думаю будет довольно оперативно.
Дальше можно запросом соединять строки ТЗ с НазваниеНоменклатуры, (По Подобно).
И думаю будет довольно оперативно.
НазваниеНоменклатуры = Элементы.Номенклатура.ВыделенныйТекст;
ТекстовыйДокумент=Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать("C:\Users\**\list.txt");
КолСтрок=ТекстовыйДокумент.КоличествоСтрок();
Для л=1 По КолСтрок Цикл
Строка = ТекстовыйДокумент.ПолучитьСтроку(л);
Если СтрНайти(ВРег(Строка), ВРег(НазваниеНоменклатуры)) > 0 Тогда
Сообщить(Строка);
КонецЕсли;
КонецЦикла;
ТекстовыйДокумент=Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать("C:\Users\**\list.txt");
КолСтрок=ТекстовыйДокумент.КоличествоСтрок();
Для л=1 По КолСтрок Цикл
Строка = ТекстовыйДокумент.ПолучитьСтроку(л);
Если СтрНайти(ВРег(Строка), ВРег(НазваниеНоменклатуры)) > 0 Тогда
Сообщить(Строка);
КонецЕсли;
КонецЦикла;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот