Страница 3 из 11

Добавлено: Ср апр 07, 2010 01:09
Stud
А где это посмотреть? :oops:

Добавлено: Ср апр 07, 2010 09:12
Batya
Stud писал(а):А где это посмотреть?
В смысле?
Я пытаюсь уточнить условия задачи.

Давай сначала. Опиши полностью, что ты хочешь.

Добавлено: Чт апр 08, 2010 23:30
Stud
Условия задачи:
Нужно по файлу - списку найти файлы, указанный выше скрипт работает, но только если в списке указано полное имя файла с расширением.(Например "20000-b.jpg") Если убрать расширение или хотябы один последний символ из имени, то поиск ничего не находит. А надо чтобы поиск был по первым символам и без расширения. (Например "20000")?
Что надо поправить?

Добавлено: Пт апр 09, 2010 10:17
Batya
Stud

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

'===========================================================================
' Колонка Result возвращает признак наличия файла\каталога в указанном файле-списке:
'   0 - файл\каталог НЕ найден;
'   1 - строгое соответствие;
'   2 - найдено начало имени
'===========================================================================

'========== Изменяемые параметры ===========================================
Const FileList = "C:\FileList.txt" 'Файл-список
'===========================================================================

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

Function Result
  Dim List, dlm, i, F
  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
  If InStr(1, dlm & List & dlm, dlm & filename & dlm, vbTextCompare) > 0 Then
    Result = 1
    Exit Function
  End If
  For i = Len(filename) - 1 To 1 Step -1
    F = Left(filename, i)
    If InStr(1, dlm & List & dlm, dlm & F & dlm, vbTextCompare) > 0 Then
      Result = 2
      Exit For
    End If
  Next
End Function

Добавлено: Пт апр 09, 2010 13:46
Stud
Большое спасибо !!! Все работает.

Добавлено: Пн сен 27, 2010 21:14
den114
Готов заплатить 10 $ за плагин поиска по списку с использованием масок (фактически достаточно только использование *)

Добавлено: Пн сен 27, 2010 21:54
Вахмурка
Подробно ставь задачу. Если это то, о чем я думаю, то работы на час. Предупреждаю - скрипт PowerPro! (а $10 отдай на собачий приют ;))

ЗЫ. Думаю, Tol!k меня опередит. Ему батник нацарапать - что пирожок скушать.

Добавлено: Пн сен 27, 2010 22:22
Flasher
den114
За плагин - мало :) , скрипт/батник тут и бесплатно изготовят, если грамотно расписать задачу. :wink:

Кстати, оффтоп..

Добавлено: Пн сен 27, 2010 23:41
Tol!k

Добавлено: Вт сен 28, 2010 19:15
den114
Gо моему немного не то, нужно чтобы найденные файлы из списка передавались в панель total, для дальнейшей работы с ними средствами total

Добавлено: Вт сен 28, 2010 19:19
den114
Собственно подробно задачу и не распишешь,
имеется список файлов и папок вида

0001.jpg
002
0003*
*0004.jpg

Необходимо найти все папки и файлы с соответстствующими именнами в определенных местах например на диске C:\ или на D:\folder

и все найденные передать в панель total, для дальнейшей работы с ними средствами total

Добавлено: Вт сен 28, 2010 20:28
Вахмурка
Должно быть, я тупой, но я не понял, что такое
с соответстствующими именнами
Соответствующими чему? С именами, представляющими собой последовательно возрастающий номер? Тогда - сколько разрядов в числе? Иными словами - сколько нулей должно быть перед 1, 2 и т.д.?
Еще. Звездочка в твоих примерах - это произвольный набор символов? Если да, то представим себе в последнем случае:

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

* = 0001
*0004.jpg = 00010004.jpg
Как трактовать такое имя? Как первое или четвертое?

Добавлено: Вт сен 28, 2010 21:33
den114
Соответствующее строкам списка.
Ваше имя можно трактовать как четвертое.
Да, звездочка - это произвольный набор символов. При отсутствии звездочки имя считается полным

0001.jpg это полное имя

002 это полное имя

0003* имя файла с произвольным набором символов вместо *например
0003.jpg или 0003.avi или 00035568.pdf

*0004.jpg имя файла с произвольным набором символов вместо *например file0004.jpg или 4560004.avi

Добавлено: Ср сен 29, 2010 02:26
Flasher
den114 писал(а):нужно чтобы найденные файлы из списка передавались в панель total, для дальнейшей работы с ними средствами total
Ну, кнопка "Файлы на панель" разве не то? Или надо автоматом?
Я могу ошибаться, но мне кажется, Tol'k указал место, где имело бы смысл об этом спрашивать, чтобы избежать оффтопа.

den114
А что понимается под списком? Файл-список? Может, тут и список не нужен, и достаточно прописи маски в одну строку через разделить( пробел, ; ) ? Да и плагин тут причём? Операция-то вроде банальная. Или я чего-то недопонимаю?

Добавлено: Ср сен 29, 2010 09:37
den114
Ну как что подразумевается, в файле находится перечень файлов которые нужно найти. В каждой строке по одному файлу, имя файла прописывается либо полностью либо с маской *

Пропись масок не подходит поскольку необходимо найти множество различных файлов имя которых прописано в каждой строке файла полностью или частично.
Например

0001.jpg
0002*
file.pdf
movie.avi
Folder1
film.avi
video.mov
picture.gif

и так далее

звездочка используется нунапример если нужно найти файлы с разным расширением или же которые начинаются в данном случае на 0002.

В первое время использовал строку поиска total с вводом имен файлов через точку с запятой

Но в последнее время это не подходит в связи с ограничением строки в 1024 символа.