Script Request

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

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

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

Сообщение Flasher »

skole
Сделать заголовок в комментриях скрипта - пару минут. Пользующийся прежде всего будет смотреть в шапку скрипта после копирования, не надо ему усложнять путь. Кроме того, это противоречит описанию в памятке.
Аватара пользователя
Strek
Сообщения: 205
Зарегистрирован: Вс окт 17, 2010 23:10
Контактная информация:

Сообщение Strek »

Этот скрипт создаёт файл не в активной панели, а там где лежит сам файл скрипта. А как, чтобы в активной панели?
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Strek
Во-первых, скрипт надо правильно применять. При создании для него кнопки или пользовательской команды поле "Путь запуска" должно быть пустым. Много раз разъяснялось. См., например, прикреплённую в подфоруме памятку. (Ссылка на неё, между прочим, была дана в предыдущем посте на этой же странице!)
Во-вторых, разъяснения в этом подфоруме по оформлению ссылок на скрипты также делались неоднократно, включая ту же памятку.

Замечание за нарушение правил форума (оверквотинг и игнорирование уже имеющихся разъяснений по сути заданного вопроса).
Текст скрипта заменён ссылкой.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Strek
Сообщения: 205
Зарегистрирован: Вс окт 17, 2010 23:10
Контактная информация:

Сообщение Strek »

Avada
Извиняюсь и спасибо за разъяснения.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Strek
Извинения за оверквотинг с немедленным его продолжением? Зачем было полностью повторять предыдущий пост? Советую как следует усвоить разницу в применении кнопки "Цитата" и строки "цитировать" под ником. А также понять, что во многих случаях ответы не требуют никакого цитирования вообще.
Цитата удалена.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
_D_V_S_
Сообщения: 39
Зарегистрирован: Сб янв 31, 2009 22:49

Сообщение _D_V_S_ »

Здравствуйте!

Нужна помощь в создании vbs скрипта для автоматизации редактирования текстовых файлов.

В файле File1.ext нужно изменить значение переменных:

aaa_aaa = 100
bbb_bbb = 50.0

И в файле File2.ext:

ccc_ccc = 110

Числовые значения надо поменять. Вместо 100 например 400, вместо 50.0 - 270 например и т.д.
Ввод нового числа - вручную каждый раз, как я себе представляю - в специальное окошко для ввода.

То есть чтобы скрипт осуществлял поиск aaa_aaa в файле File1.ext и появлялось окошко, куда можно ввести своё значение.
После - поиск bbb_bbb в том же файле и окошко, и во втором файле ссс_ссс соответственно так же.

Количество пробелов перед и после знака "=" в строках - непостоянное.

Решаема-ли эта задача средствами VBS ? Или только вручную такие операции выполнимы?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

_D_V_S_
Есть же тема, а там скрипт на AutoIt и hta. А менять выражение можно целиком, а не отдельно числа в них.
Аватара пользователя
Strek
Сообщения: 205
Зарегистрирован: Вс окт 17, 2010 23:10
Контактная информация:

Сообщение Strek »

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

Сообщение Flasher »

Strek
Можно. Но сперва советую правильно определиться с выбором скрипта. См. начало предыдущей страницы.
И ещё вопрос: файл остаётся в неизменном виде или подлежит редактированию? А то есть ещё вариант с открытием редактора с текстом из буфера.
Аватара пользователя
Strek
Сообщения: 205
Зарегистрирован: Вс окт 17, 2010 23:10
Контактная информация:

Сообщение Strek »

Flasher писал(а):Strek
Можно. Но сперва советую правильно определиться с выбором скрипта. См. начало предыдущей страницы.
И ещё вопрос: файл остаётся в неизменном виде или подлежит редактированию? А то есть ещё вариант с открытием редактора с текстом из буфера.
Не понял по поводу "определиться". Нет, открывать не нужно. Зачем тогда этот скрипт?! (открыл редактор по горячей клавише, вставил и редактируй) :lol: А вот имя задать да. Как?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Strek писал(а):Не понял по поводу "определиться".
Для понимания текст шёл далее. Я там ссылку приводил. Это касается необходимости в регистрации публичного Хелпера.
Strek писал(а):Зачем тогда этот скрипт?! (открыл редактор по горячей клавише, вставил и редактируй)
Текст же копироваться не из одного единственного редактора будет, а из других мест (браузеры, почтовые клиенты, мессенджеры, уведомительные окна приложений и т.д.). Как это зачем? Для последующей правки. А если не составляет труда открывать редактор и самостоятельно вставлять, то и не должно составлять труда открывать редактор, вставлять и сохранять...
Strek писал(а):А вот имя задать да. Как?
Через InputBox.
Аватара пользователя
Strek
Сообщения: 205
Зарегистрирован: Вс окт 17, 2010 23:10
Контактная информация:

Сообщение Strek »

Flasher писал(а):Через InputBox.
Я извиняюсь, только начинаю учить VBScript. Куда и как вставлять? И как можно убрать запрос "Буфер обмена содержит текст. Создать файл с содержимым буфера обмена?"? Чтобы молча выдал ввод имени для файла и Ок. Или уже немного посмотрел, получилось выводит окно с вводом, только не там где нужно и не меняется имя файла (InputBox ("Введите имя файла")). Между каких строк вставить?
Последний раз редактировалось Strek Ср мар 14, 2012 00:01, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Strek
Там нужно пол скрипта менять. А имя принципиально вводить? Ведь можно менять его в панели ТС после появления файла.

Add: Короче, ладно, мне лень уже ждать ответа. Я предпочитаю иметь рандомное название или пронумерованное без траты времени на ввод.
В моём скрипте заменить 2 предпоследние строки на эти:

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

File = InputBox("Введите имя файла:", "Создание файла с текстом из буфера обмена", "NewFile.txt")
If Trim(File) <> "" Then FSO.OpenTextFile(P & File, 2, True).Write Clip : Quit
Последний раз редактировалось Flasher Ср мар 14, 2012 00:39, всего редактировалось 1 раз.
Аватара пользователя
Strek
Сообщения: 205
Зарегистрирован: Вс окт 17, 2010 23:10
Контактная информация:

Сообщение Strek »

Flasher
Ну да, принципиально. Удобно. Только не пойму где твой. Этот Или тот, что под ссылкой в этом (твоём) сообщении? По первому не работает. Да и по второму тоже.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Strek
Логично, что мой - это тот, что в моём посте. Не учёл кое-что. Так:

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

'======================================================================================
' Назначение: cоздание в активной панели файла с текстом из буфера обмена (при наличии)
' Условие:    пустой путь запуска
'======================================================================================
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim WSH : Set WSH = CreateObject("WScript.Shell")
R = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
A = WSH.RegRead(R)
If A > 0 Then WSH.RegWrite R, 0, "REG_DWORD"
Clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
If A > 0 Then WSH.RegWrite R, A, "REG_DWORD"
If IsNull(Clip) Or Trim(Clip) = "" Then Quit
NL = vbNewLine : Box Name, NL, File
If Trim(Name) <> "" Then
  Do While FSO.FileExists(File)
    Msg = MsgBox("Такой файл уже существует!" & NL & "Повторите попытку!",_
    49, "    Создание файла с текстом из буфера обмена")
    If Msg = 2 Then Quit
    Box Name, NL, File : If Trim(Name) = "" Then Quit
  Loop : FSO.OpenTextFile(File, 2, True).Write Clip
End If : Quit
Sub Box(N, L, F)
  N = InputBox(L&L&L&L&L&"Введите имя файла:", "        Создание " &_
  "файла с текстом из буфера обмена", "NewFile.txt")
  F = WSH.CurrentDirectory & "\" & N
End Sub
Sub Quit : Set WSH = Nothing : Set FSO = Nothing : WScript.Quit : End Sub
Последний раз редактировалось Flasher Ср мар 14, 2012 22:42, всего редактировалось 4 раза.
Ответить