Выделить файлы по созданному списку

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Slamzor писал(а):. Const FileList = "C:FileList.txt" 'Файл-список.
Косая черта пропущена.
Slamzor писал(а):3. В General прописал путь C:FileList.txt.
C: не нужно. Скрипт должен лежать в папке плагина.

А дата в атрибутах не соответствует дате, прописанной в имени?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Slamzor
Сообщения: 19
Зарегистрирован: Вс май 26, 2013 19:24

Сообщение Slamzor »

Flasher
Пути изменились, на другом месте проделываю операции, но результата пока нет.

Это из General.vbs
'========== Изменяемые параметры ===========================================
Const FileList = "c:\Users\Slam\Desktop\Total Commander\Plugins\wdx\script_wdx_0.2.0.0\Список.txt" 'Файл-список
'===========================================================================
Сам General.vbs - тут же.
Список.txt - тут же.

Script.ini - тут же.
[Script]
Section=General

[General]
LongName=0
ParseDirs=0
Script=General.vbs

В список внес найти одно имя для начала.
Перехожу в папку с файлами и повторяю операции:
Alt+F7-модули(другой перевод)-птичку на поиск в модулях, выбираю: Script,result,содержит,1
результат - искомые файлы не найдены.
А дата в атрибутах не соответствует дате, прописанной в имени?
Нет, не соответствует.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Slamzor писал(а):внес найти одно имя
А точно в папке файл с таким именем существует?
Slamzor
Сообщения: 19
Зарегистрирован: Вс май 26, 2013 19:24

Сообщение Slamzor »

sa, да. Я сперва испробовал как мне нужно, по куску от имени файла, затем полностью копировал имя с расширением в файл. Результат тот же.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

В скрипте проверяется имя без расширения. И не кусок от имени, а всё имя.
Последний раз редактировалось sa Вт май 28, 2013 14:18, всего редактировалось 1 раз.
Slamzor
Сообщения: 19
Зарегистрирован: Вс май 26, 2013 19:24

Сообщение Slamzor »

Очень все это странно. Даю имя config в список, ставлю Диск С и погнали. Шерстит и находит ссылки, файлы с разрешением HTML, url .
Имена не содержат config

Изменил строчку в General.vbs
История с config аналогичная
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Slamzor писал(а):ставлю Диск С и погнали
С птичкой возле "Поиск с плагинами"?
Slamzor
Сообщения: 19
Зарегистрирован: Вс май 26, 2013 19:24

Сообщение Slamzor »

sa
Да, у меня только поиск в модулях, в силу другого перевода.

Добавлено спустя 14 минут:

sa, да. Я сперва испробовал как мне нужно, по куску от имени файла, затем полностью копировал имя с расширением в файл. Результат тот же.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Slamzor писал(а):Шерстит и находит ссылки, файлы с разрешением HTML, url .
Имена не содержат config
У меня, если вписываю имя config в список, то TC находит только файлы с именем config (с разными расширениями).
Slamzor
Сообщения: 19
Зарегистрирован: Вс май 26, 2013 19:24

Сообщение Slamzor »

Дома все переустановил, где была ошибка не знаю, но заработало.

А теперь подскажите как можно поиск по части имени файла пустить ?
Как я выше излагал у меня есть список, в котором часть имен отображена. Эта часть находится в середине имени.
Если грубо: маска_имя_дата.*
Мне известно - имя.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Slamzor
Можно создать список масок или список условий для шаблона на вкладке "Плагины":
tc | Имя | Рег. выраж.: | .*_.*_имя_.*_.*_.*
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Slamzor
Сообщения: 19
Зарегистрирован: Вс май 26, 2013 19:24

Сообщение Slamzor »

Flasher
Выставил
tc | Имя | Рег. выраж
в значение указал: (.*)интеграция(.*)
Все ищет.
А можно список подсунуть с такими значениями (.*)часть имени(.*)?
Если можно расскажите по подробней или ссылкой ткните
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Slamzor писал(а):Если грубо: маска_имя_дата.*
Если грубо, то вместо If InStr … EndIf для поиска подстроки _имя_ (в любом месте строки) можно записать

Код: Выделить всё

  For Each S In Split(List, vbNewLine)
    If InStr(1, FSO.GetBaseName(filename), "_" & S & "_", vbTextCompare) > 0 Then
       Result = 1
    End If
  Next
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Slamzor писал(а):в значение указал: (.*)интеграция(.*)
Можно без скобок.

Вообще-то выделение и фильтрация с указанным файл-списком не работает. Только поиск.

Поэтому для выделения я предлагаю список отредактировать, подставить нужные символы для масок, и преобразовать в одну строку, заменив перевод строки на пробел. После сформировать команду SELECTFILES с этой строкой после неё. Тогда будет нормальное выделение.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Slamzor
Сообщения: 19
Зарегистрирован: Вс май 26, 2013 19:24

Сообщение Slamzor »

sa
Изменил, выглядит так:

Код: Выделить всё

Dim FSO 
Set FSO = CreateObject("Scripting.FileSystemObject") 
Const ForReading = 1 
content = Result 
Set FSO = Nothing 

Function Result 
  Dim List, dlm 
  Result = 0 
  If Not FSO.FileExists(FileList) Then 
    Exit Function 
  End If 
  
  On Error Resume Next 
  List = FSO.OpenTextFile(FileList, ForReading, False).ReadAll 
  If Err.Number <> 0 Then 
    Exit Function 
  End If 
  On Error GoTo 0 
  
  dlm = vbNewLine 
  For Each S In Split(List, vbNewLine) 
    If InStr(1, FSO.GetBaseName(filename), "_" & S & "_", vbTextCompare) > 0 Then 
       Result = 1 
    End If 
  Next
End Function
Но не ищет ...
Ответить