Как создать файл?

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

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

user351
Сообщения: 8
Зарегистрирован: Пн дек 03, 2018 10:37

Сообщение user351 »

Я только заинтересовался автоматизацией рутинных операций. И через поиск нашёл форум. В скриптах и прочих программах ничего не понимаю. Но стараюсь внимательно читать инструкции. Подскажите, пожалуйста, по этой кнопке:

Установил кнопку для скрипта по этой инструкции от Batya. Всё делал по инструкции. Кнопка прекрасно работает. Только не разобрался как правильно вписывать эти параметры:

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

' {создаваемый файл} [{минимальное количество цифр номера}]
'==========================================================
{создаваемый файл} - С этим вроде понятно. Я вписал название файла 1.txt. Теперь кнопка создаёт мне файлы с названиями 1_2.txt, 1_3.txt, 1_4.txt и так далее. Если назначаю в параметрах звёздочку *.txt, то кнопка не работает.
[{минимальное количество цифр номера}] - этот параметр я не понял. Писал в скобках разные цифры, то в итоге создавался файл без расширения. Что тут должно быть?

А эти коды нужно ли вписывать куда-нибудь?

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

Option Explicit
'====== Изменяемые параметры ==============================
Const IsQuestion = True 'Запрос на создание 
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

user351
Для начала ознакомьтесь с памяткой и выполните в теме, где выложен скрипт, 1 пункт снизу.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
user351
Сообщения: 8
Зарегистрирован: Пн дек 03, 2018 10:37

Сообщение user351 »

Flasher, спасибо, с памяткой ознакомился. В обсуждении памятки как раз и говорится, что новичками достаточно будет пары примеров использования скрипта. Параметров, в том числе.

По инструкции в памятке новичку скачал даже плагин просмотра версии интепретатора FileInfo, в случае ошибок в работе скрипта. Правда, не понял о каком интерпретаторе идёт речь. Я очень далёк от этого. Мне как новичку это ничего не говорит. Но дело в том, что у меня скрипт прекрасно работает. Никаких ошибок. Текст из буфера обмена подхватывается и создаётся файл. Только не хватает примеров, о чём я и говорил выше.
Flasher писал(а):выполните в теме, где выложен скрипт, 1 пункт снизу.
Извините, не совсем понял. Я нашёл скрипт на этой страничке:
В целях борьбы со спамом новичкам запрещено постить ссылки.
Если вы не спамер, приносим свои извинения за неудобства
Извините, не могу привести ссылку. Короче, в той теме висит всего лишь одно сообщение. Так и называется Отдельное собщение, Тема: Script Request. Автор сообщения Batya. Добавлено: Ср Май 05, 2010 11:15.

Никакого 1-го пункта снизу там не нашёл. О чём идёт речь?

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

Сообщение Flasher »

user351 писал(а):Я очень далёк от этого.
На этот пункт я и не указывал.
user351 писал(а):Текст из буфера обмена подхватывается и создаётся файл.
Сюда советую заглянуть.
user351 писал(а): Тема: Script Request.
Так почему до сих пор не там спрашиваете?
user351 писал(а):Никакого 1-го пункта снизу там не нашёл.
Речь о памятке, а не топике.
Ссылки новичку можно прописать без http://, www. Модератор поправит.
Сверху каждого поста есть ссылка "Отдельно", вот её и надо приводить.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
user351
Сообщения: 8
Зарегистрирован: Пн дек 03, 2018 10:37

Сообщение user351 »

Flasher писал(а):Сюда советую заглянуть.
Спасибо большое! Кое-что становится понятным :)
Flasher писал(а):Так почему до сих пор не там спрашиваете?
Flasher писал(а):Сверху каждого поста есть ссылка "Отдельно", вот её и надо приводить.
Извините, я не знал, что на форуме сообщения выводятся отдельной страницей. Для меня это выглядело как какая-нибудь отдельная закрытая тема. Вот в этом сообщении нашёл код: http://forum.wincmd.ru/viewpost.php?p=63033
Так бы туда и написал сразу :)
Flasher писал(а):Речь о памятке, а не топике.
О, разобрался теперь! Нашёл версию интепретатора, благодаря плагину FileInfo, если, конечно, я всё правильно понял:
FileVersion : 5.812.10240.16384
Только мне это ни о чём не говорит, к сожалению. Разве только автору скрипта.

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

Сообщение Flasher »

user351 писал(а):Вот в этом сообщении нашёл код:
Понятно.
user351 писал(а):этот параметр я не понял. Писал в скобках разные цифры, то в итоге создавался файл без расширения.
Ну, собственно, в памятке п. 5 объясняется условность этих скобок.
user351 писал(а):Нашёл версию интепретатора
Это при том, что
Flasher писал(а):На этот пункт я и не указывал.
:?:
user351 писал(а):Разве только автору скрипта.
Или хорошо знающим язык.
user351 писал(а):Спасибо большое за помощь!
Пож-та.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
user351
Сообщения: 8
Зарегистрирован: Пн дек 03, 2018 10:37

Сообщение user351 »

Flasher писал(а):Ну, собственно, в памятке п. 5 объясняется условность этих скобок.
Да, я прочитал об этом. Но тут помимо фигурных скобок, которые я не стал вписывать в код, есть и ещё и квадратные скобки:

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

' {создаваемый файл} [{минимальное количество цифр номера}]
'
В строке создаваемый файл я вписал readme.txt. А вот что такое "минимальное количество цифр номера" для этого скрипта я так и не понял. Вписывал туда и разные числа. И 1, и 2, и 3. Со квадратными скобками и без них. Фигурные я пропускал. Но в итоге ничего не понял для чего это "минимальное количество цифр номера". Иногда даже ошибка скрипта выскакивала.

В итоге я просто оставил readme.txt и скрипт всё равно работает. Подскажите, пожалуйста, для чего это "минимальное количество цифр номера"?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

user351 писал(а):есть и ещё и квадратные скобки:
Которые в памятке также упоминаются. Условны любые скобки кроме круглых. Под квадратными понимается потенциальное наличие кавычек при наличии пробелов. У фигурных и угловых семантика общая, подразумевающая края (начало/конец) в описании параметра.
user351 писал(а):А вот что такое "минимальное количество цифр номера" для этого скрипта я так и не понял.
При создании второго и далее файла в той же папке к имени добавляется счётчик. Вот в этом счётчике минимальное число цифр может быть разным: 1, 01, 001 и т. д.
user351 писал(а):Иногда даже ошибка скрипта выскакивала.
Если есть желание исправить, то уже после прочтения памятки должно быть понятно, как действовать. Но лучше использовать другие скрипты по приведённой ссылке.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Hjkma
Сообщения: 178
Зарегистрирован: Сб апр 18, 2015 01:26

Сообщение Hjkma »

Пользуюсь Shift-F4. Удобно. Но приходится каждый раз менять в Notepad++ кодировку на UTF-8 BOM. Можно ли как-то в Тотале автоматически создавать файл с кодировкой UTF-8 BOM?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Hjkma
Откуда в файле нулевого размера взяться кодировке? NP++ сам устанавливает ANSI для правки чистого файла, если не стоит флаг "Применять к открытым ANSI файлам" на странице "Новый Документ" настроек, вызываемых из меню "Опции" главного меню.

P.S.: Могу, конечно, скинуть скрипт с записью BOM-сигнатуры, чтобы от опции и редактора не зависеть, но InputBox и диалог создания ТС, мягко говоря, не одно и то же...
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Hjkma
Сообщения: 178
Зарегистрирован: Сб апр 18, 2015 01:26

Сообщение Hjkma »

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

Сообщение Flasher »

Hjkma
А чем опция-то не устроила?

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

'============= VBS =============
' Создание файла c BOM для UTF-8
' Параметр: %N
' Условие: Путь запуска — пустой
'===============================
If WSH.Arguments.Count Then Name = WSH.Arguments(0) :_
If InStr(Name, ".") = 0 Then Name = Name & ".txt"
Name = InputBox(String(5, vbCr) & "Введите имя редактируемого файла:", " Создание файла", Name,,_
(CreateObject("htmlfile").parentwindow.self.screen.Height-18240/CreateObject("WScript.Shell")._
RegRead("HKCU\Control Panel\Desktop\WindowMetrics\AppliedDPI"))*7.5)
If Trim(Name) = "" Then WSH.Quit
With New Regexp
  .Pattern = "[\*/?"":|<>]" : If .Test(Name) Then _
  S = Split(": ? * "" \ / | < >") :_
  R = Array(-230,-225,-246,698,-24,-24,-24,706,707) :_
  For i = 0 To 8 : Name = Replace(Name, S(i), ChrW(R(i))) : Next
  .Pattern = "(.+) \((\d+)\)\.\w+$"
  If .Test(Name) Then Set Exec = .Execute(Name)(0) :_
  BN = Exec.SubMatches(0) : c = Exec.SubMatches(1)
End With
With CreateObject("Scripting.FileSystemObject")
  If Len(BN) = 0 Then BN = .GetBaseName(Name) : c = 1
  Ext = .GetExtensionName(Name)
  If Len(Ext) Then Ext = "." & Ext
  While .FileExists(Name) Or .FolderExists(Name)
    c = c + 1 :  Name = BN & " (" & c & ")" & Ext
  Wend
End With
With CreateObject("ADODB.Stream")
  .Charset = "UTF-8" : .Open : .WriteText Empty : .SaveToFile Name, 2 : .Close
End With
With CreateObject("WScript.Shell")
  .Run """%COMMANDER_EXE%"" /A /O /S /L=""" & .CurrentDirectory & "\" & Name & """",, 1
  .SendKeys "{F4}"
End With
Последний раз редактировалось Flasher Вт фев 19, 2019 20:34, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Hjkma
Сообщения: 178
Зарегистрирован: Сб апр 18, 2015 01:26

Сообщение Hjkma »

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

Сообщение Flasher »

Hjkma
Как это нет? Как раз для него и есть.
UTF — нет такой кодировки.

Забыл добавить, что скрипт заменяет запрещённые символы и добавляет счётчик при наличии одноимённого файла, а есть такой же счётчик был, то наращивает его же.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Hjkma
Сообщения: 178
Зарегистрирован: Сб апр 18, 2015 01:26

Сообщение Hjkma »

Flasher
https://i.imgur.com/Z1BbUDD.jpg
Может версия другая или еще что... :(
Ответить