Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Создание списка файлов выборочно по расширениям
Goto page Previous  1, 2, 3, 4, 5  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Batya



Joined: 15 Dec 2004
Posts: 2227
Location: Москва, Россия

Post (Separately) Posted: Tue Jan 25, 2011 13:33    Post subject: Reply with quote

Jonmey
Что-то я перемудрил с переносом строк.
Упростил скрипт по твоей задаче (исправил исходный пост).
Результат работы должен не измениться.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Tue Jan 25, 2011 14:00    Post subject: Reply with quote

Flasher wrote:
Quote:
Тогда уж м.б. и дополнять, а не заменять?
Да, такое поведение устроит.
Можно и заменять. Сделать?
Flasher wrote:
Пустые строки можешь сделать между всеми подкаталогами, а не только папками, что в корне?
Теоретически можно. Если не получится запихнуть в кнопку, батник устроит?
Уникод или вин-1251 предпочтительнее?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Jan 25, 2011 14:37    Post subject: Reply with quote

Tol!k wrote:
Можно и заменять. Сделать?
Да, отдельно тогда нарисуй, т. с.
Tol!k wrote:
Теоретически можно. Если не получится запихнуть в кнопку, батник устроит?
Если не получится, то, конечно, устроит.
Tol!k wrote:
Уникод или вин-1251 предпочтительнее?
Сложно сказать, всё от настроек реестра зависит. Ну, давай юникод.
Back to top
View user's profile Send private message
Jonmey



Joined: 27 Sep 2010
Posts: 45

Post (Separately) Posted: Wed Jan 26, 2011 06:39    Post subject: Reply with quote

Batya
Второй вариант скрипта работает также отлично как и первый.

А возможно сделать, чтобы в параметрах кнопки задавалось в каком формате выводить список - Unicode или Win-1251 (или ANSI, то есть равный локали системы)? И если файл со списком уже существует, то создавался новый файл? (например, если FileList.txt уже есть в целевой папке, то новый список записывался, например, в файл FileList2.txt и так по порядку).
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2227
Location: Москва, Россия

Post (Separately) Posted: Wed Jan 26, 2011 16:55    Post subject: Reply with quote

Jonmey wrote:
А возможно сделать, чтобы в параметрах кнопки задавалось в каком формате выводить список - Unicode или Win-1251 (или ANSI, то есть равный локали системы)?

В функции CreateTextFile третий параметр отвечает за кодировку создавемого файла: True - Unicode, False - ASCII.
Batya wrote:
FSO.CreateTextFile(TargetList, True, True).Write List


Jonmey wrote:
И если файл со списком уже существует, то создавался новый файл? (например, если FileList.txt уже есть в целевой папке, то новый список записывался, например, в файл FileList2.txt и так по порядку).

В конец скрипта добавь функцию:
Code:
Function NextName(pFilePath)
  Dim lPath, lName, lExt, li, lAdd
  Const lQ = 1 'Минимальное количество цифр в номере
  With CreateObject("Scripting.FileSystemObject")
    lPath = .GetParentFolderName(pFilePath)
    If lPath <> "" Then lPath = lPath & "\"
    lName    = .GetBaseName(pFilePath)
    lExt     = .GetExtensionName(pFilePath)
    NextName = lPath & lName & lAdd & "." & lExt
    Do While .FileExists(NextName)
      li = li + 1
      If li < 10^lQ Then
        lAdd = Right(String(lQ, "0") & li, lQ)
      Else
        lAdd = li
      End If
      NextName = lPath & lName & lAdd & "." & lExt
    Loop
  End With
End Function

И исправь строку:
Batya wrote:
FSO.CreateTextFile(NextName(TargetList), True, True).Write List

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Jan 26, 2011 19:05    Post subject: Reply with quote

Batya wrote:
В функции CreateTextFile третий параметр отвечает за кодировку создавемого файла: True - Unicode, False - ASCII.
Там же проверка нужна для запуска с разных осей. Стационар тут не подходит.

Tol!k
Какие там дела с кнопкой?
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2227
Location: Москва, Россия

Post (Separately) Posted: Wed Jan 26, 2011 19:17    Post subject: Reply with quote

Flasher wrote:
Там же проверка нужна для запуска с разных осей. Стационар тут не подходит.

Ты это для чего сказал?
Ты используешь скрипт? У тебя в каких-то случаях возникают ошибки?
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Jan 26, 2011 19:27    Post subject: Reply with quote

Batya wrote:
Ты это для чего сказал?
Для призыва поправить скрипт. Будто не понятно.
Batya wrote:
Ты используешь скрипт? У тебя в каких-то случаях возникают ошибки?
Первый, возможно, пригодится. Я его проверял только в одном месте. Работает. А что это меняет?
Back to top
View user's profile Send private message
Jonmey



Joined: 27 Sep 2010
Posts: 45

Post (Separately) Posted: Wed Jan 26, 2011 20:09    Post subject: Reply with quote

Batya
Скрипт отличный и работает чудесно, существенно упрощая ряд задач.

Спасибо большое-пребольшое!
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Jan 26, 2011 20:24    Post subject: Reply with quote

Jonmey wrote:
существенно упрощая ряд задач
Например, каких?
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2227
Location: Москва, Россия

Post (Separately) Posted: Thu Jan 27, 2011 10:23    Post subject: Reply with quote

Flasher wrote:
Для призыва поправить скрипт.

Flasher wrote:
Я его проверял только в одном месте. Работает.

Если всё работает, то зачем править?
С чего ты взял, что будут какие-то проблемы на различных ОС? Ты знаешь, как MS раскручивает используемый мной метод объекта FileSystemObject?
Думаю, что неопредлённые проблемы надо решать при их появлении, а не настраивать проблем, где их никогда не было.

Flasher wrote:
Например, каких?

У каждого могут быть свои узкоспециализированные задачи. "Будто не понятно."
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Jan 27, 2011 10:46    Post subject: Reply with quote

Batya wrote:
С чего ты взял, что будут какие-то проблемы на различных ОС?
Я ничего не брал, так задача была обрисована:
Jonmey wrote:
Unicode или Win-1251 (или ANSI, то есть равный локали системы)
Batya wrote:
Ты знаешь, как MS раскручивает используемый мной метод объекта FileSystemObject?
Ну, расскажи. Зачем было писать про два режима подхвата кодировки, если с единожды указанным всё будет работать аналогично?
Batya wrote:
У каждого могут быть свои узкоспециализированные задачи. "Будто не понятно."
Совершенно очевидно, что непонятно, иначе бы не спрашивал. Или мне запрещается для себя найти в этом какую-то пользу? Вопрос адресован другому, заметь. Дай возможность ему и ответить. Если предложишь способы того, где и как подобные списки можно использовать, буду признателен.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2227
Location: Москва, Россия

Post (Separately) Posted: Thu Jan 27, 2011 11:01    Post subject: Reply with quote

Flasher wrote:
Batya писал(а):
Ты знаешь, как MS раскручивает используемый мной метод объекта FileSystemObject?
Ну, расскажи. Зачем было писать про два режима подхвата кодировки, если с единожды указанным всё будет работать аналогично?

Я тоже не знаю. Поэтому и спрашиваю у тебя, есть ли живые примеры различных вариантов работы.
А так как меня спросили, я привел ответ из справки:
Quote:
object.CreateTextFile(filename[, overwrite[, unicode]])
...
unicode
Optional. Boolean value that indicates whether the file is created as a Unicode or ASCII file. The value is true if the file is created as a Unicode file, false if it's created as an ASCII file. If omitted, an ASCII file is assumed.

Возможно, для вопрошающего это именно то, что нужно.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Jan 27, 2011 11:11    Post subject: Reply with quote

Batya
Есть одна ось с юникодом, когда появится возможность выйти на неё, проверю с опущенным третьим параметром.
Back to top
View user's profile Send private message
Jonmey



Joined: 27 Sep 2010
Posts: 45

Post (Separately) Posted: Thu Jan 27, 2011 15:55    Post subject: Reply with quote

Про ANSI я упомянул, поскольку не знал, как проще сделать в скрипте - задать кодировку жестко или не жестко (согласно локали), но при этом чтобы была возможность перехода на Unicode. Меня устраивало оба варианта, но конечное решение я оставил за программистом.

Скрипт используется в системе бэкапов и восстановления, поскольку (как это ни странно) ни один из четырех мне известных плагинов для TC, создающих списки файлов, не создает списки такого вида (видимо из-за стремления авторов уменьшить размер конечного файла). А пользоваться штатными средствами ТС для этого крайне неудобно (по крайней мере, если это приходится делать регулярно).
Конечно, если задаться целью, то наверняка можно найти стороннюю утилиту, создающую подобные списки, но ее использование будет существенно менее удобным чем скрипт.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5  Next
Page 3 of 5

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group