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

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

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

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

Сообщение Flasher »

shveicar писал(а):чем вариант с textpipe не устраивает?
>
shveicar писал(а):нужно менять в каждом выделенном файле, - отдельные фрагменты
+
shveicar писал(а):и вставлять целые блоки из файла списка
Называется "сам спрашиваю - сам отвечаю". :wink:
Сюда ещё добавляется удобство работы с группой искомых строк.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Сюда ещё добавляется удобство работы с группой искомых строк.
Смысл - понятен, но на официальном сайте textpipe - на форуме, мне ответили, что блочную замену можно осуществить через создание отдельного фильтра на .vbs и не стали вдаваться в детали..
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Andrey_A писал(а): при большом количестве файлов она работает очень медленно, недавно разбирая эту проблему, нашёл другой вариант - работает почти моментально
Неплохой вариант. Несколько менее надежный (не прочитает файлы с разделителем только LF), но намного быстрее.

Если необходимости в чтении таких файлов и нет, то функцию можно заменить таким вариантом без дополнительных изменений скриптов:

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

Func _TCHLoadFileList($sFilePath)
    Return StringSplit(StringStripWS(FileRead($sFilePath), 2), @CRLF, 1)
EndFunc
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

shveicar писал(а):блочную замену можно осуществить через создание отдельного фильтра на .vbs и не стали вдаваться в детали..
Обработка группы входящих блоков - это не единоразовая блочная замена. Да и был бы смысл ... при таком богатстве выбора, включая имеющийся варианты, с vbs в частности.. :D
shveicar писал(а):нужно менять в каждом выделенном файле, - отдельные фрагменты
Необязательно в каждом - там маска есть. + рекурсия в выбранных папках.
Loopback писал(а):Если необходимости в чтении таких файлов и нет
Как же нет? Есть. Разве в AutoIt нет аналога vbnewline ( Chr(13) & Chr(10) or Chr(10) ) ?
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Как же нет? Есть. Разве в AutoIt нет аналога vbnewline ( Chr(13) & Chr(10) or Chr(10) ) ?
Только функция чтения из файла автоматически определяет тип разделителя. В остальных случаях его нужно определять самостоятельно.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Здравствуйте.
Подскажите - как с помощью существующих решений, можно заменить определенные фрагменты на цифровые, - с увеличением по счетчику?
Например, в тексте тега (html) - идет фрагмент image_4675.jpg, image_5995.jpg и множество подобных.
В качестве поиска используем схему

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

 image_([0-9]+).jpg
а в качестве замены нужно получить:
в первом попавшемся значении - image_001.jpg
во втором попавшемся значении - image_002.jpg и т.д.
Спасибо.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

shveicar писал(а):с увеличением по счетчику
С пом. здешних примеров нельзя.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
SaDim
Сообщения: 18
Зарегистрирован: Вс май 22, 2011 22:28

Сообщение SaDim »

Помогите, пожалуйста.
В инете много заменителей текстовых строк, но почему то я не нашёл ни одного заменителя HEX-строк.
Мне нужно заменять большое количество HEX-строк, разной длинны от 4 до 500 символов.
К сожалению, единственное, что я нашёл это Hex Editor Neo, остальные не тянули длину символов, либо могли менять только одинаковое количество символов без проблем.
Разобраться со скриптами я не смог (ну не программист), а нужно работать со списком замен, а то в ручную можно допустить ошибку, что очень плохо.
Помогите со скриптом или плагином что бы решить эту проблему с помощью Total Commander.
Возможно, кто то знает софт по замене множества HEX-строк, или пример скрипта по замене для Hex Editor Neo, буду признателен.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

SaDim писал(а):кто то знает софт по замене множества HEX-строк
Приводился: 1, 2.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
SaDim
Сообщения: 18
Зарегистрирован: Вс май 22, 2011 22:28

Сообщение SaDim »

Flasher СПАСИБО большое.
Возможно это то что надо.
Осталось только перевести около 1000 моих сплошных HEX-строк (шестнадцатеричный формат) в понимаемые этой прогой формат по два символа с пробелом (байты).
Одним прогам надо без пробелов, другим с пробелам, а третье сами своего формата не понимают, что тут скажешь...
===============================
Проверил, всё работает.
Ещё раз СПАСИБО Flasher.
Ответить