View previous topic :: View next topic |
Author |
Message |
Stud
Joined: 06 Apr 2010 Posts: 4
|
(Separately) Posted: Wed Apr 07, 2010 01:09 Post subject: |
|
|
А где это посмотреть? |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2220 Location: Москва, Россия
|
(Separately) Posted: Wed Apr 07, 2010 09:12 Post subject: |
|
|
Stud wrote: | А где это посмотреть? |
В смысле?
Я пытаюсь уточнить условия задачи.
Давай сначала. Опиши полностью, что ты хочешь. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Stud
Joined: 06 Apr 2010 Posts: 4
|
(Separately) Posted: Thu Apr 08, 2010 23:30 Post subject: |
|
|
Условия задачи:
Нужно по файлу - списку найти файлы, указанный выше скрипт работает, но только если в списке указано полное имя файла с расширением.(Например "20000-b.jpg") Если убрать расширение или хотябы один последний символ из имени, то поиск ничего не находит. А надо чтобы поиск был по первым символам и без расширения. (Например "20000")?
Что надо поправить? |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2220 Location: Москва, Россия
|
(Separately) Posted: Fri Apr 09, 2010 10:17 Post subject: |
|
|
Stud
Code: | '===========================================================================
' Колонка 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 |
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Stud
Joined: 06 Apr 2010 Posts: 4
|
(Separately) Posted: Fri Apr 09, 2010 13:46 Post subject: |
|
|
Большое спасибо !!! Все работает. |
|
Back to top |
|
|
den114
Joined: 03 Nov 2007 Posts: 25
|
(Separately) Posted: Mon Sep 27, 2010 21:14 Post subject: |
|
|
Готов заплатить 10 $ за плагин поиска по списку с использованием масок (фактически достаточно только использование *) |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
(Separately) Posted: Mon Sep 27, 2010 21:54 Post subject: |
|
|
Подробно ставь задачу. Если это то, о чем я думаю, то работы на час. Предупреждаю - скрипт PowerPro! (а $10 отдай на собачий приют )
ЗЫ. Думаю, Tol!k меня опередит. Ему батник нацарапать - что пирожок скушать. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Sep 27, 2010 22:22 Post subject: |
|
|
den114
За плагин - мало , скрипт/батник тут и бесплатно изготовят, если грамотно расписать задачу.
Кстати, оффтоп.. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
|
Back to top |
|
|
den114
Joined: 03 Nov 2007 Posts: 25
|
(Separately) Posted: Tue Sep 28, 2010 19:15 Post subject: |
|
|
Gо моему немного не то, нужно чтобы найденные файлы из списка передавались в панель total, для дальнейшей работы с ними средствами total |
|
Back to top |
|
|
den114
Joined: 03 Nov 2007 Posts: 25
|
(Separately) Posted: Tue Sep 28, 2010 19:19 Post subject: |
|
|
Собственно подробно задачу и не распишешь,
имеется список файлов и папок вида
0001.jpg
002
0003*
*0004.jpg
Необходимо найти все папки и файлы с соответстствующими именнами в определенных местах например на диске C:\ или на D:\folder
и все найденные передать в панель total, для дальнейшей работы с ними средствами total |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
(Separately) Posted: Tue Sep 28, 2010 20:28 Post subject: |
|
|
Должно быть, я тупой, но я не понял, что такое Quote: | с соответстствующими именнами | Соответствующими чему? С именами, представляющими собой последовательно возрастающий номер? Тогда - сколько разрядов в числе? Иными словами - сколько нулей должно быть перед 1, 2 и т.д.?
Еще. Звездочка в твоих примерах - это произвольный набор символов? Если да, то представим себе в последнем случае: Code: | * = 0001
*0004.jpg = 00010004.jpg | Как трактовать такое имя? Как первое или четвертое? _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
den114
Joined: 03 Nov 2007 Posts: 25
|
(Separately) Posted: Tue Sep 28, 2010 21:33 Post subject: |
|
|
Соответствующее строкам списка.
Ваше имя можно трактовать как четвертое.
Да, звездочка - это произвольный набор символов. При отсутствии звездочки имя считается полным
0001.jpg это полное имя
002 это полное имя
0003* имя файла с произвольным набором символов вместо *например
0003.jpg или 0003.avi или 00035568.pdf
*0004.jpg имя файла с произвольным набором символов вместо *например file0004.jpg или 4560004.avi |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Sep 29, 2010 02:26 Post subject: |
|
|
den114 wrote: | нужно чтобы найденные файлы из списка передавались в панель total, для дальнейшей работы с ними средствами total | Ну, кнопка "Файлы на панель" разве не то? Или надо автоматом?
Я могу ошибаться, но мне кажется, Tol'k указал место, где имело бы смысл об этом спрашивать, чтобы избежать оффтопа.
den114
А что понимается под списком? Файл-список? Может, тут и список не нужен, и достаточно прописи маски в одну строку через разделить( пробел, ; ) ? Да и плагин тут причём? Операция-то вроде банальная. Или я чего-то недопонимаю? |
|
Back to top |
|
|
den114
Joined: 03 Nov 2007 Posts: 25
|
(Separately) Posted: Wed Sep 29, 2010 09:37 Post subject: |
|
|
Ну как что подразумевается, в файле находится перечень файлов которые нужно найти. В каждой строке по одному файлу, имя файла прописывается либо полностью либо с маской *
Пропись масок не подходит поскольку необходимо найти множество различных файлов имя которых прописано в каждой строке файла полностью или частично.
Например
0001.jpg
0002*
file.pdf
movie.avi
Folder1
film.avi
video.mov
picture.gif
и так далее
звездочка используется нунапример если нужно найти файлы с разным расширением или же которые начинаются в данном случае на 0002.
В первое время использовал строку поиска total с вводом имен файлов через точку с запятой
Но в последнее время это не подходит в связи с ограничением строки в 1024 символа. |
|
Back to top |
|
|
|