Создание списка файлов выборочно по расширениям
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Можно и заменять. Сделать?Flasher писал(а):Да, такое поведение устроит.Тогда уж м.б. и дополнять, а не заменять?
Теоретически можно. Если не получится запихнуть в кнопку, батник устроит?Flasher писал(а):Пустые строки можешь сделать между всеми подкаталогами, а не только папками, что в корне?
Уникод или вин-1251 предпочтительнее?
Да, отдельно тогда нарисуй, т. с.Tol!k писал(а):Можно и заменять. Сделать?
Если не получится, то, конечно, устроит.Tol!k писал(а):Теоретически можно. Если не получится запихнуть в кнопку, батник устроит?
Сложно сказать, всё от настроек реестра зависит. Ну, давай юникод.Tol!k писал(а):Уникод или вин-1251 предпочтительнее?
Batya
Второй вариант скрипта работает также отлично как и первый.
А возможно сделать, чтобы в параметрах кнопки задавалось в каком формате выводить список - Unicode или Win-1251 (или ANSI, то есть равный локали системы)? И если файл со списком уже существует, то создавался новый файл? (например, если FileList.txt уже есть в целевой папке, то новый список записывался, например, в файл FileList2.txt и так по порядку).
Второй вариант скрипта работает также отлично как и первый.
А возможно сделать, чтобы в параметрах кнопки задавалось в каком формате выводить список - Unicode или Win-1251 (или ANSI, то есть равный локали системы)? И если файл со списком уже существует, то создавался новый файл? (например, если FileList.txt уже есть в целевой папке, то новый список записывался, например, в файл FileList2.txt и так по порядку).
В функции CreateTextFile третий параметр отвечает за кодировку создавемого файла: True - Unicode, False - ASCII.Jonmey писал(а):А возможно сделать, чтобы в параметрах кнопки задавалось в каком формате выводить список - Unicode или Win-1251 (или ANSI, то есть равный локали системы)?
Batya писал(а):FSO.CreateTextFile(TargetList, True, True).Write List
В конец скрипта добавь функцию:Jonmey писал(а):И если файл со списком уже существует, то создавался новый файл? (например, если FileList.txt уже есть в целевой папке, то новый список записывался, например, в файл FileList2.txt и так по порядку).
Код: Выделить всё
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 FunctionBatya писал(а):FSO.CreateTextFile(NextName(TargetList), True, True).Write List
Нет, я не сплю. Я просто медленно моргаю.
Flasher писал(а):Для призыва поправить скрипт.
Если всё работает, то зачем править?Flasher писал(а):Я его проверял только в одном месте. Работает.
С чего ты взял, что будут какие-то проблемы на различных ОС? Ты знаешь, как MS раскручивает используемый мной метод объекта FileSystemObject?
Думаю, что неопредлённые проблемы надо решать при их появлении, а не настраивать проблем, где их никогда не было.
У каждого могут быть свои узкоспециализированные задачи. "Будто не понятно."Flasher писал(а):Например, каких?
Нет, я не сплю. Я просто медленно моргаю.
Я ничего не брал, так задача была обрисована:Batya писал(а):С чего ты взял, что будут какие-то проблемы на различных ОС?
Jonmey писал(а):Unicode или Win-1251 (или ANSI, то есть равный локали системы)
Ну, расскажи. Зачем было писать про два режима подхвата кодировки, если с единожды указанным всё будет работать аналогично?Batya писал(а):Ты знаешь, как MS раскручивает используемый мной метод объекта FileSystemObject?
Совершенно очевидно, что непонятно, иначе бы не спрашивал. Или мне запрещается для себя найти в этом какую-то пользу? Вопрос адресован другому, заметь. Дай возможность ему и ответить. Если предложишь способы того, где и как подобные списки можно использовать, буду признателен.Batya писал(а):У каждого могут быть свои узкоспециализированные задачи. "Будто не понятно."
Я тоже не знаю. Поэтому и спрашиваю у тебя, есть ли живые примеры различных вариантов работы.Flasher писал(а):Batya писал(а):
Ты знаешь, как MS раскручивает используемый мной метод объекта FileSystemObject?
Ну, расскажи. Зачем было писать про два режима подхвата кодировки, если с единожды указанным всё будет работать аналогично?
А так как меня спросили, я привел ответ из справки:
Возможно, для вопрошающего это именно то, что нужно.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.
Нет, я не сплю. Я просто медленно моргаю.
Про ANSI я упомянул, поскольку не знал, как проще сделать в скрипте - задать кодировку жестко или не жестко (согласно локали), но при этом чтобы была возможность перехода на Unicode. Меня устраивало оба варианта, но конечное решение я оставил за программистом.
Скрипт используется в системе бэкапов и восстановления, поскольку (как это ни странно) ни один из четырех мне известных плагинов для TC, создающих списки файлов, не создает списки такого вида (видимо из-за стремления авторов уменьшить размер конечного файла). А пользоваться штатными средствами ТС для этого крайне неудобно (по крайней мере, если это приходится делать регулярно).
Конечно, если задаться целью, то наверняка можно найти стороннюю утилиту, создающую подобные списки, но ее использование будет существенно менее удобным чем скрипт.
Скрипт используется в системе бэкапов и восстановления, поскольку (как это ни странно) ни один из четырех мне известных плагинов для TC, создающих списки файлов, не создает списки такого вида (видимо из-за стремления авторов уменьшить размер конечного файла). А пользоваться штатными средствами ТС для этого крайне неудобно (по крайней мере, если это приходится делать регулярно).
Конечно, если задаться целью, то наверняка можно найти стороннюю утилиту, создающую подобные списки, но ее использование будет существенно менее удобным чем скрипт.