Страница 1 из 1

[Req] Плагин для search/replace в файлах

Добавлено: Вс фев 05, 2006 20:22
D1P
Родилась идея wdx-плагина для find-replace в файлах.
Значением поиска для поля плагина задаём какую-то строку, содержащую в себе параметры какой текст на что менять, например так:
{текст_который_надо_заменить_в_найденных_файлах}{текст_которым_надо_заменить}

Плагин ищет в файлах текст по первому условию и заменяет на текст по второму. Не обязательно текст, любые байтовые последовательности... принцип, думаю, ясен.
Плагиновое API это позволит 100%
Как идея? Кто возьмётся?

Добавлено: Вс фев 05, 2006 21:14
CaptainFlint
D1P
Ага. А потом кто-нибудь создасть набор колонок с полем этого плагина и, случайно открыв каталог Windows, будет долго материть всех на свете. :) Плагин же не может определить нормальным способом, откуда его вызывают - из поиска или откуда-то из другого места.

Добавлено: Вс фев 05, 2006 21:17
CaptainFlint
Хотя стоп. Ты тупишь, а я вслед за тобой! Откуда плагин вообще узнает, что пользователь ввёл в поле поиска? Это же всё Тотал сам обрабатывает, к плагину же лишь выполняются обращения вида: скажи-ка мне, друг любезный, а каково значение такого-то поля для такого-то файла? А вот для этого? А вон для того?..

Добавлено: Пн фев 06, 2006 01:30
D1P
Откуда плагин вообще узнает, что пользователь ввёл в поле поиска?
На вкладке "плагины" в инструменте поиска в поле "значение" вводим строку с условиями. Из этих условий плагин и будет узнавать, что искать. Естественно, это будет не совсем контентый плагин по функционалу... Скорее это будет просто способ прикручивания нужной фичи к TC обходными путями.

Защиту от дурака тоже можно сделать - плагину достаточно проверять, существует ли дочернее окно TC класса TFindFile.

Вот сейчас подумал: если поиск в TC сначала ищет файлы по общим условиям, а потом "отдаёт" на проверку wdx-плагину, тогда всё просто. А если сначала идёт поиск по полям плагина (что, имхо, маловероятно) - тогда да, овчинка выделки не стоит, слишком сложной будет реализация (одному плагу придётся дублировать все функции поиска TC).

Если непонятно - попытаюсь утром написать простенький примерчик, заодно и проверю, что и как в поиске TC работает.

Сразу предвещу вопрос "а почему бы просто не сделать внешнюю утилиту?" - да как раз потому, что хочется пользоваться поиском TC.
---
И ещё, в качестве оффтопика. Попробовал прогу Yandex Desktop Search (http://desktop.yandex.ru/)... может у кого есть какие идеи, как прикрутить её к поиску в TC? Мне пока приходит только мысль сделать плагин-парсер выходного html...

Добавлено: Пн фев 06, 2006 01:40
CaptainFlint
На вкладке "плагины" в инструменте поиска в поле "значение" вводим строку с условиями. Из этих условий плагин и будет узнавать, что искать.
Так ведь эта строка всё равно не передаётся плагину, Тотал сам выполняет сравнение этой строки с тем, что возвращает плагин по запросу. Или я чего-то не так понял?

Добавлено: Пн фев 06, 2006 02:35
D1P
Да, ты прав, это я ошибся :( Стал писать пример и только тогда понял, что условия не передаются плагину.
Конечно, это можно обойти (находить контрол с условием на закладке "Плагины" и читать текст условия оттуда), но это уже чревато проблемами.
Ладно, идея отклоняется, тему можно считать исчерпанной.

Добавлено: Чт авг 03, 2006 10:45
Моторокер
Поиск и замену лучше реализовать через архиваторный плагин – все удобства налицо.
Создать список файлов легко – просто выделить нужные файлы/папки. За программиста это делает Total.

Перед упаковкой вызвать диалог настроек, в котором задать условия для поиска/замены.
Остально делается в цикле упаковки – запрограммировать нужно только функцию замены.
+ Прикрутить RegExp и вперёд! Не нужны больше никакие платные или глюкавые серчеры/реплейсеры!