Копипастер ™
Инструкция

Оглавление:

  1. Терминология
  2. Интерфейс
  3. Принцип работы
  4. Операции
1. Терминология

Операция – одно действие: копировать, вставить, заменить и т.д.

Макрос – последовательность операций.

Исходник – код, текст для обработки.

Результат – код, результат выполнения всех операций.

Совпадение – участок в исходнике, попадающий под условия применения операции.

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

Массив – переменная в которой записано более одного совпадения.

Элемент массива – одно значение, значение одного совпадения при копировании. Количество элементов равно количеству совпадений операции, которой этот массив был записан.

Индекс элемента массива – порядковый номер элемента (совпадения при копировании). Для понятности, нумерация начинается с единицы (1), а не с нуля (0), как это принято в программировании.

Цикл –действия повторяющиеся по кругу.

Итерация – один круг цикла.

2. Интерфейс

Схематичное расположение областей:

  • Поле «исходник». Сюда вставляется код для обработки
  • Поле «результат». Здесь отображается результат обработки
  • Отображение макроса, настройка операций

Меню управления

  • Список операций
  • Кнопка «добавить операцию» в макрос
  • Список сохраненных макросов
  • Кнопка «сохранить» макрос
  • Кнопка «удалить» макрос
  • Кнопка «загрузить» макрос из сохраненных
  • Позволяет свернуть все операции (отображение операций в компактном режиме)

Управление операциями

  • Переключатель режима работы операции
  • Переместить операцию «выше» в очереди
  • Переместить операцию «ниже» в очереди
  • «отключить» работу операции. Операция отображается в макросе, но не выполняется
  • «свернуть» операцию (отображение операций в компактном режиме)
  • «удалить» операцию из макроса
3. Принцип работы

Последовательность обработки операций

Операции выполняются последовательно по очереди, сверху вниз. Пример на скриншоте:

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

Последовательность внутри операций

Операция представляет из себя приблизительно такую последовательность действий:

  • Поиск искомого участка, тега и т.д. для обработки
  • Отсев по счетчику совпадений
  • Целевое действие

Из этого следует, что совпадениями для поиска будут все найденные элементы, участки. А совпадениями для целевого действия (операции в целом) будут только совпадения прошедшие отсев по счетчику, если он используется, и нумерация у них своя. Это важно понимать.

Дальше в инструкции под понятием «совпадение» будет подразумеваться совпадение операции. В местах где написано «Будут обработаны все найденные совпадения» это значит, что имеются в виду совпадения уже прошедшие отсев по счетчику. А не то, что слово «все» из этой фразы означает режим счетчика, как может ошибочно показаться.

Счетчик совпадений

Дополнительное условие, позволяющее точнее отсеять совпадения, которые нужно/не нужно обработать.

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

Пример

Исходник

Одна операция

  • Режим «все». Результат:
  • Режим «четные». Результат:
  • Режим «нечетные». Результат:
  • Режим «периодически»: только указанные, каждое 3 начиная с 2. Результат:
  • Режим «конкретные»: 1, 3-5. Результат:

Переменные и массивы

Данные в переменные записываются с помощью операций «Копировать» и «Вырезать».

Имена переменных задаются в настройках операций. Для имени можно использовать латиницу и цифры, без пробелов, дефисов и пр. символов.

Для обращения к переменной, нужно взять ее в знак доллара $ с обеих сторон. Если задали имя переменной string, для того чтобы вывести ее содержимое нужно в тексте вставки или замены в нужном месте указать $string$. $string$ будет заменено на соответствующие данные, которые записаны в этой переменной.

Переменные (не массивы):

В настройках операций по умолчанию стоит этом режим. В переменную будет записано только первое совпадение.

При обращении, данные из переменной будут вставлены во все совпадения.

Переменные – массивы:

Для включения режима поставить галочку «в массив»

В массив будут записаны все совпадения, попадающие под условия операции. В естественном порядке: первое совпадение – первый элемент массива, второе – второй и т.д.

Обращение также, как и к простой переменной $string$.

При обращении к массиву, в каждое совпадение будут вставлены данные с соответствующим порядковым номером. Если совпадений при вставке больше, чем элементов массива, то в совпадения оставшиеся без соответствующего элемента массива ничего не будет вставлено.

Если к операции копирования применен дополнительный отсев по счетчику совпадений (допустим только четные), то элементы в массиве не будут под номерами 2,4,6 и т.д. Они будут также под номерами 1, 2, 3 и т.д. Не стоит путать совпадения для счетчика и совпадения для записи в переменные. Вспоминаем о последовательности.

Тоже самое правило работает и в обратном случае. Если в операции вставки применен отсев по счетчику, то данные из массива будут вставляться в том же порядке 1, 2, 3 и т.д.

Пример

Исходник

Макрос

Результат

Если скопируем только нечетные

то результат будет таким:

Если скопируем все, а вставим только в нечетные

То результат

HTML теги, селекторы

В операциях, где можно обработку привязать к тегу или его атрибутам, есть поля для указания самого тега. Например:

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

Селектор пишется слитно с именем тега в прямоугольных скобках справа от него. Ниже примеры с описание селекторов:

[атрибут] – проверяет есть ли у элемента данный атрибут

[!атрибут] – находит теги у которых нет данного атрибута

[атрибут=величина] – проверяет, есть ли у элемента данный атрибут и равно ли его значение величине.( div[class=myclass] – найдет все div’ы у которых class равен myclass)

[атрибут!=величина] – проверяет, есть ли у элемента данный атрибут и не равно ли его значение величине.( div[class!=myclassok] – найдет все div’ы у которых class не равен myclassok)

[атрибут^=величина] – проверяет, есть ли у элемента данный атрибут и начинается ли его значение с величины ( div[class^=my] – найдет все div’ы у которых class начинается с my, к примеру myclass и myclassok)

[атрибут$=величина] – проверяет, есть ли у элемента данный атрибут и заканчивается ли его значение величиной( div[class$=ok] – найдет все div’ы у которых class заканчивается на ok, к примеру myclassok, yok, ok, но не oki)

[атрибут*=величина] – проверяет, есть ли у элемента данный атрибут и содержит ли его значение в себе величину, в любом месте(div[class*=sok] – найдет все div’ы у которых class содержит sok, кпримеру myclassok, ysoki, sok)

4. Операции

Копировать

4 режима:

  • «Участок»
    В полях «от» и «до» указать границы копирования. Выбор «включительно» позволяет скопировать участок включая соответствующие границы.Будут обработаны все совпадения.
  • «Тег»
    В поле «тег» указать имя тега, можно использовать селекторы.Переключатель «Как копировать», в режиме «содержимое» скопирует только содержимое тега, в режиме «включая тег» будет скопирован тег полностью.Будут обработаны все совпадения.
  • «Атрибут»
    В поле «атрибут» указать название атрибута, значение которого нужно скопировать.В поле «тега» указать имя тега, в котором ищем атрибут. Можно использовать селекторы.Будут обработаны все совпадения.
  • «Строки»
    В поле «строки» указать номера строк через запятую, можно указывать диапазоны. Например: 1, 3-6, 14.Копирование производится в простую переменную, в том порядке, в котором указаны номера строк. Скопированные строки склеиваются и при обращении вставляются все в одно место. Совпадение будет только одно.

Вырезать

Принцип работы идентичен операции «копировать», единственное отличие – данные которые копируются будут удалены из исходника.

Вставить

5 режимов:

  • «В место»В поле «вставить» указываем информацию, которую нужно вставить. В этом поле можно обращаться к переменным.

    Переключатель «место вставки»:

    • «Между»В текстовых полях указать точное место вставки. Вставка будет выполнена, только если между указанными данными нет ни одного символа, в том числе пробела.

      Будут обработаны все совпадения.

    • «До»Вставка будет произведена перед указанными в текстовом поле данными.

      Будут обработаны все совпадения.

    • «После»Вставка будет произведена после указанных в текстовом поле данных.

      Будут обработаны все совпадения.

    • «В начало документа»Вставка в начало первой строки исходника.

      Совпадение будет только одно.

    • «В конец»Вставка в конец последней строки исходника.

      Совпадение будет только одно.

  • «Внутрь тега»В поле «вставить» указываем информацию, которую нужно вставить. В этом поле можно обращаться к переменным.

    В поле «в тег» указать имя тега, можно использовать селекторы.

    Переключатель «место вставки»:

    • «В начало»Данные будут вставлены сразу после открывающего тега.

      Будут обработаны все совпадения.

    • «В конец»Данные будут вставлены перед закрывающим тегом.

      Будут обработаны все совпадения.

  • «Возле тега»В поле «тег» указать имя тега, можно использовать селекторы.

    В поле «добавить слева» указываем информацию, которую нужно вставить перед открывающим тегом. В этом поле можно обращаться к переменным. Поле можно оставить пустым, если слева добавлять ничего не требуется.

    В поле «добавить справа» указываем информацию, которую нужно вставить после закрывающего тега. В этом поле можно обращаться к переменным. Поле можно оставить пустым, если справа добавлять ничего не требуется.

    Будут обработаны все совпадения.

  • «Атрибут»Если у искомых тегов нет такого атрибута, он будет добавлен. Если есть, то его значение будет переписано. Чтобы точнее указать искомые теги пользуйтесь селекторами, например [!атрибут].

    В поле «атрибут» указать название атрибута, который нужно добавить.

    В поле «в тег» указать имя тега, к которому нужно добавить атрибут. Можно использовать селекторы.

    В поле «значение» указываем значение добавляемого атрибута.

    Будут обработаны все совпадения.

  • «В строку»В поле «вставить» указываем информацию, которую нужно вставить. В этом поле можно обращаться к переменным.

    В поле «в строку» указать номер искомой строки в исходнике.

    Совпадение будет только одно.

    Переключатель «Место вставки»:

    • «В начало»Данные будут вставлены в начало указанной строки.
    • «В конец»Данные будут вставлены в конец указанной строки.
    • «Перед»Данные будут вставлены в строку под указанным номером, сместив остальные данные исходника вниз.
    • «После»Данные будут вставлены в строку идущую следом за указанной, сместив ее и остальные данные исходника вниз.

Заменить

5 режимов:

  • «Текст»Производится замена одних данных на другие.

    В поле «Заменить» указать данные которые нужно заменить.

    В поле «на» указать данные которыми нужно заменить. В этом поле можно обращаться к переменным.

    Будут обработаны все совпадения.

    Режим «зациклить»:

    • Если поставить галочку «Зациклить», то после первой обработки исходника будет произведена следующая и так до тех пор, пока в исходнике не останется ни одного совпадения.Рассмотрим на примере. Исходник: «xxxxxx». Заменить «хх» на «х». Программа разобьет исходник на совпадения вот так: хх хх хх. Соответственно результатом будет: «ххх». Во время второй обработки будет такая разбивка: хх х – результат: «хх». И после третей обработки в результате останется: «х».

      С помощью этого режима, например, очень удобно бороться с лишними пробелами.

  • «Участок»В полях «от» и «до» указать границы участка, который нужно заменить. Выбор «включительно» позволяет заменить участок включая соответствующие границы.

    В поле «заменить на» указать данные которыми нужно заменить. В этом поле можно обращаться к переменным.

    Будут обработаны все совпадения.

  • «Тег»В поле «тег» указать имя тега, можно использовать селекторы.

    В поле «на» указать данные которыми нужно заменить. В этом поле можно обращаться к переменным.

    Будут обработаны все совпадения.

    Переключатель «Что заменить»:

    • «Содержимое»Будет заменено содержимое тега, на новое. Имя тега и его атрибуты не затрагиваются.
    • «Имя тега»Будет заменено только имя тега.
    • «Полностью»Производится полная замена тега (включаю открывающий и закрывающий теги) вместе с содержимым на новые данные.
  • «Атрибут»В поле «атрибут» указать название искомого атрибута.

    В поле «тег» указать имя тега, можно использовать селекторы.

    В поле «на» указать данные которыми нужно заменить. В этом поле можно обращаться к переменным.

    Будут обработаны все совпадения.

    Переключатель «Что заменить»:

    • «Имя»Будет заменено название атрибута, значение остается без изменений.
    • «Значение» Будет заменено значение атрибута, название остается без изменений.
  • «Строки»В поле «строки» указать номера строк через запятую, можно указывать диапазоны. Например: 1, 3-6, 14.

    В поле «на» указать данные которыми нужно заменить. В этом поле можно обращаться к переменным.

    Содержимое каждой из перечисленных строк исходника по отдельности будут заменены на новые данные.

    Совпадение будет только одно.

 

Удалить

6 режимов:

  • «Текст»В поле «текст» указать данные, которые нужно удалить.

    Будут обработаны все совпадения.

  • «Участок»Переключатель «Удалить»:
    • «от.. до»В полях «от» и «до» указать границы удаления. Выбор «включительно» позволяет удалить участок включая соответствующие границы.

      Будут обработаны все совпадения.

    • «до.. после»В полях «до» и «после» указать границы удаления. Выбор «включительно» позволяет удалить включая соответствующие границы.

      Будет удалено все кроме указанного участка. Если таких участков несколько, то все они останутся нетронуты.

      Будут обработаны все совпадения.

    • «от начала.. до»В поле «до» указать границу удаления.

      Выбор «включительно» позволяет удалить включая границу.

      Будет удалено все от начала первой строки исходника до первого совпадения.

      Совпадение будет только одно.

    • «от.. до конца»В поле «от» указать границу удаления.

      Выбор «включительно» позволяет удалить включая границу.

      Будет удалено все от последнего совпадения указанной границы, до конца исходника.

      Совпадение будет только одно.

  • «Форматирование»В этом режиме удаляется HTML разметка.

    Переключатель «Как чистить»:

    • «Полностью»Будет удалена вся html разметка на искомом участке
    • «Только от тегов»В поле «теги» через запятую указать теги, можно использовать селекторы.

      Разметка будет очищена только от указанных тегов.

    Переключатель «Что чистить»:

    • «Содержимое тега»Указать имя тега, можно использовать селекторы.

      Удаление разметки будет применено к содержимому указанного тега.

      Будут обработаны все совпадения.

    • «Участок»В полях «от» и «до» указать границы участка. Выбор «включительно» позволяет включить в обработку соответствующие границы.

      Будут обработаны все совпадения.

    • «весь документ»Удаление будет применено ко всему исходнику.

      Совпадение будет только одно.

  • «Тег»В поле «тег» указать имя тега, можно использовать селекторы.

    Будут обработаны все совпадения.

    Переключатель «Что удалить»:

    • «Содержимое»Будет удалено содержимое указанного тега.

      Будут обработаны все совпадения.

    • «Форматирование»Будет удалена разметка указанного тега, т.е. удаляется открывающий и закрывающий теги, не затрагивая содержимого.

      Будут обработаны все совпадения.

    • «Полностью»Тег удаляется полностью, включая содержимое и разметку.

      Будут обработаны все совпадения.

  • «Атрибут»Переключатель «атрибут»:
    • «Указанные»В поле, через запятую, перечислить названия искомых атрибутов.
    • «Все, кроме указанных»В поле, через запятую, перечислить названия атрибутов, которые операция не будет затрагивать. Все остальные атрибуты искомого тега будут удалены.
    • «Все»Удаляются все атрибуты искомого тега.

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

    Совпадения в этой операции считаются по тегам. Будут обработаны все совпадения.

    Переключатель «Что удалить»:

    • «Значение»Будет удалено только значение искомых атрибутов. Результат будет выглядеть так: атрибут=””.
    • «Полностью»Атрибут будет удален полностью: название и значение.
  • «Строки»В поле «строки» указать номера строк через запятую, можно указывать диапазоны. Например: 1, 3-6, 14.

    Совпадение будет только одно.

 

Цикл

Цикл представляет собой набор повторяющихся действий, по количеству ограниченных настроенным счетчиком либо кол-вом элементов переменной-массива.

Оба режима этой операции служат для работы с массивами. Единственная разница между ними – тип счетчика.

Результат работы цикла записывается в новую переменную, которую затем можно вставить в исходник.

Очень удобно использовать для построения новой структуры (html разметки), когда исходник невозможно перестроить в нужный вид, а есть возможность только вытащить из него данные.

В результатирующую переменную будет вначале записаны данные из поля «Добавить в начале» – в этом поле можно обращаться к переменным. Далее будет добавлен результат работы цикла. Далее будут записаны данные из поля «Добавить в конце» – в этом поле можно обращаться к переменным.

В поле «Сохранить результат в переменную» укажите имя результатирующей переменной.

Разберем подробнее режимы работы цикла (группа полей «Циклическая вставка»):

  • «Перебор значений переменной»Если вы знакомы с основами программирования, то этот режим подобен циклу foreach.

    Счетчик идет от единицы (1), до индекса последнего элемента массива с шагом 1. Т.е. на каждой следующей итерации значение счетчика увеличивается на единицу, и так до тех пор, пока значение не поравняется с количеством элементов массива указанного в поле «имя переменной» – на этом работа цикла останавливается.

    В поле «имя переменой» укажите имя переменной-массива,

    С помощью счетчика совпадений «обработать элементы» можно дополнительно указать индексы с какими нужно работать. Принцип работы тот же, как и других операций.

    В поле «Циклические данные» указать данные, которые будут циклически записываться в результатирующую переменную. В этом поле можно обращаться к переменным – как и везде, из массивов будут вставлены элементы с индексом равным значению счетчика (на каждой итерации цикла).

  • «Со счетчиком»Если вы знакомы с основами программирования, то этот режим подобен циклу for.

    Вы сами можете указать начальное и конечное значение считчика в соответствующих полях. Шаг счетчика 1.

    В остальном, все также, как и в режиме «перебор значений переменной».

Загрузка файлов

Позволяет загружать файлы по ссылкам из исходника. Распознает ссылки на файлы любых расширений из атрибута «href» тега «a» и атрибута «src» тега «img».

Операция сохраняет все фалы в папку пользователя на сервере. Откуда их можно потом выкачать через FTP. Чтобы получить FTP доступ на свою папку, обратитесь к администратору alexa.shmelev@gmail.com

При сохранении, файлы переименовываются по шаблону заданному в поле «шаблон имени файла».

В коде результата старые ссылки заменяются на новые, заданные по шаблону из поля «Строка, которая будет добавляться к имени файла». Эта функция позволяет в коде результата автоматически проставить ссылки на файлы, перенесенные на ваш хостинг/сервер.

Поле «папка сохранения»

Укажите имя папки, в которую сохранять файлы. Допустима латиница для имени. Символ слеш (/) в начале и конце не нужен. Если такой папки не существует, будет создана новая папка автоматически. Пример: dir1.

Можно указывать подпапки. Например: dir1/dir2. Но в этом случае, как и в случае более глубоких вложений, главное чтобы все родительские каталоги уже были созданы. Т.е. если указать значение из примера, но папки dir1 не существует, то операция выполнена не будет.

Поле «Строка, которая будет добавляться к имени файла»

Укажите в этом поле директорию в которой файлы будут расположены у вас на хостинге/сервере после переноса. В коде результата, ссылки по которым файлы были загружены, будут заменены на ссылки с вашего хостинга/сервера.

Если файлы вам не нужны актуальные ссылки в коде результата, то можно в это поле оставить пустым.

«Домен источника файлов»

Укажите домен на котором расположены файлы в формате domen.ru или www.domen.ru.

«Шаблон имени файла»

Шаблон по которому будут генерироваться имена для загружаемых файлов.

Во избежание путаницы и перезаписи файлов, лучше все их переименовывать. Хотя и есть возможность оставить имена оригинальными – оставить это поле пустым.

В шаблоне можно использовать латиницу, цифры, дефис (-) и символ решетка (#). Символы решетки будут заменены на порядковый номер файла в папке. (В каждой папке свой счетчик – файл counter.txt). Если слитно поставить 2 или более решеток, то в имя будет вставлена цифра с соответствующим кол-вом символов.

Пример шаблона: img-#

Результат сохранения: img-1.jpg, img-2.jpg, img-3.jpg.

Пример шаблона: img-###

Результат сохранения: img-001.jpg, img-002.jpg, img-003.jpg.

Расширение в шаблоне указывать нельзя! Оно автоматически вставляется соответствующее расширению файла.

Переключатель «Загружать расширения»:

  • «Стандартно»Будут найдены и загружены файлы с расширениями jpeg, jpg, gif, png, pdf, rtf, doc, docx.
  • «Выборочно»Укажите через запятую, расширения которые нужно загружать. Применяется для отсева лишних совпадений, либо если стандартный набор не включает необходимые типы файлов.

Переключатель «Загружать из тегов»

  • «Стандартно»Будут найдены и загружены файлы по ссылкам из атрибута «href» тега «a» и атрибута «src» тега «img».
  • «Выборочно»Укажите здесь теги через запятую из которых нужно загружать. В этом поле можно использовать селекторы. Позволяет дополнительно отсеять лишние совпадения.

 

В заключение, рассмотрим один комплексный пример почти на все операции.

Имеем такой исходник:

Надо перестроить список в таблицу и загрузить изображения на свой сервер. Результат нам нужен в таком виде:

Макрос для данной задачи будет таким:

Подробно этот пример разобран тут (№1 Комплексный пример почти на все операции).

Этот макрос вы сможете найти в списке сохраненных макросов под именем «Пример 1».