*)Форум:
вопрос-ответ


1)Новое:
что добавил


2)Введение:
о программе


3)Как пользоваться клипами

4)Скачать
клипы и словари


5)Сделать
простейший клип


6)Поумневшие
команды


7)Главные герои
и исполнители


8)Мыслящий
кибер-клип


@)Контакты


6) 

Поумневшие команды
Преимущество «специальных» команд перед имитацией клавиш и команд из меню редактора

В предыдущей главе я говорил о том, что с помощью всего трёх команд (^!KeyBoard, ^!Toolbar и ^!Menu) можно составлять целые «магнитофонные записи». Включил клип с такой записью - и он сам сделает рутинную работу за тебя, нужным образом обработает текст, создаст новый документ и пр. Казалось бы, ничего другого и не надо: эти три команды включают в себя весь инструментарий, какой только есть в меню редактора и в макроклавишах вашей клавиатуры. То есть с помощью их можно "записать" абсолютно ВСЁ, что умеет текстовой редактор NoteTab. Чего же боле?

Как ни парадоксально, на самом деле NoteTab умеет намного больше того, что... умеет. Я бы сравнил этот текстовой редактор с детским конструктором - каким вы его построите из клипов-кубиков, таким он и будет. Загляните в перечень команд и функций клип-программинга. Разве вас не поражает размах? Нет, это не "текстовик", это какой-то монстр по своим потенциальным возможностям. Тут тебе и управление документами на диске (можно создавать файлы, искать текст, заменять текст по указанному алгоритму, даже не открывая документы в окне редактора), и управление разными другими программами (включение их, запуск команд из меню), и многое другое. Главное же, все это клип делает «интеллектуально».

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

1) выделение текста и его копирование,
2) создание нового документа и вставка в него скопированного,
3) сохранение документа. 

ВЫДЕЛЕНИЕ

Посмотрим, насколько совершенны эти команды. Начнем с выделения текста. У нас есть только одна макроклавиша для выделения - Ctrl+A. Она выделяет весь документ, целиком. А если нам нужен всего один фрагмент, скажем, абзац, в котором есть словосочетание «Глава №»? Как его автоматически выделить в тексте, чтобы автоматически же скопировать в другой документ? Вот тут-то и понадобятся специфические команды. Первая из них - ^!Find (Найти). Вторая - ^!Select (Выделить). Чтобы поиск производился не с того места, где стоит курсор, а с начала документа, используем команду ^!Jump («Прыгнуть», т.е. переставить курсор в другое место). Пишем:

^!Jump TEXT_START
^!Find "
Глава №" IT
^!Select PARAGRAPH


Как вы заметили, после команд стоят еще какие-то слова и буквы. Это - опции команд. TEXT_START - в начало текста; I - при поиске слов игнорировать начертание строчные/прописные, T - не искать только целое слово, можно и по кусочкам слов; PARAGRAPH - выделить абзац, параграф. Почти у каждой команды есть опции, уточняющие ее действие, хотя можно обходиться и без них (например, если написать просто ^!Find, то поиск все равно производиться будет). При составлении клипов вы всегда можете посмотреть в Как делать клипы.otl - там указаны и команды, и опции к ним. Здесь же приведу опции для команды «выделить»:

^!Select WORD - выделить слово, на котором стоит курсор; LINE - строку; URL - веб-ссылку; EMAIL - выделить весь электронный адрес, если на нем стоит курсор; HTMLTAG - выделить весь тег HTML; FILENAME - имя файла; HYPERLINK - гиперссылку; ALL - весь текст; BOL - выделить от курсора до начала строки; EOL - до конца строки; nn - здесь вместо «nn» пишите число, сколько букв с пробелами выделить (+3 выделит три буквы вправо, - 3 выделит три буквы влево).

Надеюсь, что такое «find», «word», «line», все знают и будут легко ориентироваться среди названий команд и опций. Если же не знаете, то нет худа без добра - выучите хотя бы минимальный «компьютерный» набор слов, что встречаются в меню всех англоязычных программ. А если вы принципиальный противник английского языка, то не пишите, а просто копируйте команды и функции в свой клип из Как делать клипы.otl - там даны русские переводы и пояснения.

Чтобы закончить с темой «выделение текста», упомянем еще одну команду: ^!SelectTo №вертик:№горизонт. Она выделит фрагмент текста от курсора до точки, заданной координатами. Слева от двоеточия пишите номер строки (отсчет от начала текста), справа - номер буквы-пробела (отсчет от начала строки).

НОВЫЙ ДОКУМЕНТ

Итак, нужный фрагмент найден, выделен и скопирован. Кстати, копировать выделенное можно как имитацией макроклавиши ^!KeyBoard Ctrl+C, так и командой с функцией: ^!Copy ^$GetSelection$ (в долларовых скобках - функция, которая обозначает выделенный текст). Теперь переходим к тому, чтобы создать новый документ...

Спросите: а что тут создавать-то? Есть универсальная для всех программ макроклавиша Ctrl+N («new», создание нового документа) - сымитируй её командой ^!Keyboard, и все дела.

Так-то оно так. Можно, конечно, воспользоваться и этим. Но зачем? Представьте, что вы работаете с документом и пожелали скопировать цитату, поместив его в другой документ, - но так, чтобы при этом не отвлекаться от текста, который перед вашими глазами. Скопировал - и забыл (типа самонаводящейся ракеты на нашем «МиГ»-е системы «выстрелил - забыл»). Для того и предназанчены клипы, чтобы всю рутинную работу оставлять за кадром. А тут надо переключать внимание на другое окно (Ctrl+N открывает в редакторе окно с новым документом), потом снова возвращаться... Вот если бы не в самом редакторе, а где-то там, на диске, незаметно возникал документ и в него «улетала» скопированная цитата. Выстрелил - забыл...

Сказано - сделано. Берем Как делать клипы.otl, в разделе [- Диск Файлы] смотрим, какие команды для этого существуют:

^!TextToFile "ПутьИмяФайла" "КакойНибудьТекст"
Создает на диске файл, содержащий указанный текст. Если файл с указанным именем уже есть на диске, то этот новый файл заменит его.

^!AppendToFile "ПутьИмяФайла" "КакойНибудьТекст"
Добавит указанный текст в конец файла на диске. Если такого файла нет на диске, он будет создан.

Что выбрать? Если мы хотим иметь постоянный единый документ, этакий цитатник, куда бы мы «закидывали» найденные в разных текстах интересные цитаты, то лучше выбрать вторую команду. Но раз у нас поставлена задача просто создать новый документ, чтобы определить туда найденный фрагмент, то берем первую команду. Теперь вся запись выглядит так:

^!Jump TEXT_START
^!Find "
Глава №" IT
^!Select PARAGRAPH
^!KeyBoard Ctrl+C
^!TextToFile "
C:\Windows\Рабочий стол\Цитаты\Глава.txt" ^$GetClipboard$

Как видите, вместо самого текста ("КакойНибудьТекст") мы использовали функцию, которая актуализирует скопированный в буфер обмена текст (Get – получить, Clipboard – содержание клипбоарда, т.е. буфера обмена). Без этой функции никак не обойтись, иначе как еще обозначить скопированное?

СОХРАНЕНИЕ ДОКУМЕНТА

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

В прошлой главе в «магнитофонной записи» была использована простенькая ^!Toolbar Save,  имитирующая команду меню File | Save (Сохранить документ). На самом деле для клипов она не годится, потому что новые документы она не может сохранить автоматически, «за кадром», а непременно открывает диалоговое окошко, куда вручную нужно вписывать имя документа, нажимать ОК. Как сделать так, чтобы клип автоматом сохранял документ и сам давал ему какое-то имя? Для этого есть специальная команда. Например:

^!Save As C:\Windows\Рабочий стол\Цитаты\Глава.txt

А как сделать, чтобы клип, сохраняя новый документ, прописывал не одно и то же имя (Глава.txt, как в вышеприведенном примере), а каждый раз давал ему новое?

Вот тут и появляется третье действующее лицо нашей пьесы – ^%Переменная%...


листать


 
Используются технологии uCoz