Замена кусков текста в выделенных файлах

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

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

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

Сообщение Flasher »

kinecter писал(а):Так ничего и не должно происходить...
Я к тому, что логика работы должна быть наглядной, иначе возникает неясность, что, куда и в какой момент было занесено. К тому же должна иметь место двойная поочерёдная вставка для поиска и замены соответственно. Лучше сделать как я написал - с кнопками.
Да, рекурсию бы не помешало добавить.
Забыл отметить, что встроенные примеры с переключением - весьма продуктивная вещь. Надо взять на заметку.
Аватара пользователя
kinecter
Сообщения: 17
Зарегистрирован: Вт ноя 29, 2011 12:33

Сообщение kinecter »

Flasher писал(а):Лучше сделать как я написал - с кнопками.
Ну вот, поменял.
По моему, даже проще получилось.

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

Сообщение Flasher »

Ну и кнопки.. Размерчик-то не наш. :) Подсказки - это, конечно, хорошо, но вроде там места для полноценных кнопок с аналогичным текстом достаточно.
Поля по высоте раза так в 4-5 я бы расширил. Видеть одну строчку при правке неюзабильно. Зрительная оценка вводимого текста должна быть приемлемой. А с однострочниками каши не сваришь.
78 строка - "командной".

Add: Вот теперь другое дело. :) Я бы ещё названия поправил. Не все понимают что такое массив vbs, (L/R)Trim и т.п.
Лучше не "взять из буфера", а "вставить из буфера".
Аватара пользователя
kinecter
Сообщения: 17
Зарегистрирован: Вт ноя 29, 2011 12:33

Сообщение kinecter »

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

Сообщение Flasher »

kinecter
[s]Шаблоны пустуют.[/s]. Пардон, это если параметр не задать.
Trim-ы, я смотрю, до сих пор не исправлены. Надо писать: удалить начальные/конечные пробелы.
Кнопки для буфера стоит чуток вправо сдвинуть.
У себя ещё добавил отступы от радиокнопок и подредактировал названия.
Валерий476347
Сообщения: 1
Зарегистрирован: Чт июн 21, 2012 16:19

Сообщение Валерий476347 »

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

и как ей пользоваться.

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

Сообщение Flasher »

Валерий476347
Нет никакого архива. Читаем памятку из шапки подфорума.
astrolit
Сообщения: 42
Зарегистрирован: Чт июл 26, 2012 05:49

Сообщение astrolit »

не работает у меня find and replace in file, вернее возможно что то не так делаю.
проблема в следующем копирую из htm следующий блок

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

<script id="AZMGVZB" type="text/javascript" src="../../../../../js1.gotophotels.ru/js/a/jquery/jquery-latest.js"></script><script id="BUAXZAz" type="text/javascript" src="../../../../../js1.gotophotels.ru/static/AEwEXNV.js"></script><!--[if lt IE 7]><script id="DTwVFTU" type="text/javascript" src="../../../../../js1.gotophotels.ru/js/DD_belatedPNG-version-54155.js"></script><![endif]--><!--[if lt IE 7]><script id="AGFIxZB" type="text/javascript" src="../../../../../js1.gotophotels.ru/js/jquery.bgiframe.min-version-54155.js"></script><![endif]-->
<script type="text/javascript">/*<![CDATA[*/
$.ajaxSetup({ cache: true, timeout: 20000 });
$.metadata.setType("attr", "data");
/*]]>*/</script>
запускаю в ТС скрипт пишет выделен 1 файл.
вставить из буфера, шаблон нормальные настройки.
чем заменять - одним пробелом.
любой регистр, лист: содержимое
кнопка заменить и ничего! что не так?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

astrolit
Лучше скрипт Loopback использовать для этого.
astrolit
Сообщения: 42
Зарегистрирован: Чт июл 26, 2012 05:49

Сообщение astrolit »

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

Сообщение Flasher »

astrolit
Сообщения: 42
Зарегистрирован: Чт июл 26, 2012 05:49

Сообщение astrolit »

пишет мол нужно больше параметров

Добавлено спустя 3 минуты:

всё разобрался
avc
Сообщения: 1
Зарегистрирован: Ср авг 22, 2012 20:16

проблема с кодировкой UTF-8 в скрипте Loopback

Сообщение avc »

есть проблема с кодировкой UTF-8 в скрипте Loopback :
если делаем замену в файле в кодировке UTF-8
то текст из русского превращается в такой :

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

<!-- Ϧ饠򼠮믭&#57154;&#57192;&#57154;&#57249;𠡮򪨠롰򮷪衧ᰰﲠ -->
Аватара пользователя
Andrey_A
Сообщения: 394
Зарегистрирован: Пт апр 10, 2009 06:28
Откуда: Сочи
Контактная информация:

Сообщение Andrey_A »

Loopback, в твоём скрипте (и в других тоже) используется функция

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

Func _TCHLoadFileList($sFileName)
    Local $asList[1] = [0]
    Local $hfList = FileOpen($sFileName, 0)
    While 1
        $sLine = FileReadLine($hfList)
        If @error Then Exitloop
        ReDim $asList[UBound($asList)+1]
        $asList[UBound($asList)-1] = $sLine
    Wend
    FileClose($hfList)
    $asList[0] = UBound($asList)-1
    Return $asList
EndFunc 
при большом количестве файлов она работает очень медленно, недавно разбирая эту проблему, нашёл другой вариант - работает почти моментально

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

Func _TCHLoadFileList($sFileName)
  Return StringRegExp(FileRead($sFileName), "(?m)^([^\r\n]*)", 3)
EndFunc
единственное цикл обработки надо начинать с 0
и использовать UBound для размера массива
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Здравствуйте.
Прочитал все посты, - скажите, в данном случае, чем вариант с textpipe не устраивает?, каскадный набор фильтров, меняются целые блоки текста. Отображение при замене, есть тестовый прогон и bak файлы.
Другое дело когда нужно менять в каждом выделенном файле, - отдельные фрагменты (с использованием регулярных выражений) и вставлять целые блоки из файла списка, тут действительно или для каждого случая, брать делать отдельный фильтр или использовать хитрый скрипт.
Пока из созданных вариантов очень удобное решение предложил Batya но работает узко-профильно. Вот если бы ему добавить функционала...
Ответить