                  Несколько макросов для Multi-Edit 5.0
                 ---------------------------------------
Вашему вниманию предлагаются несколько часто используемых мной макросов:

   1. Слегка модифицированный макрос MeHelp.mac
   2. Макрос сравнения текстовых файлов в двух окнах FC.mac
   3. Макрос сборки PRG-файлов в один программный модуль Karbind.mac
   4. Блок  широко  используемых  макросов,  а также клавиатурные макросы -
      VAUtll.mac.
   5. Пример  титульного  HELP-файла  с  используемыми  у  меня  HELP-ами -
      HelpList.hlp
   6. HELP-файл с описанием макросов - VAMacros.hlp.

Все  откомпилированные  макросы  предназначены  для ME5. Любители ME6 могут
самостоятельно откомпилировать предоставленные исходники.

 MeHelp.mac
------------
Этот  оригинальный  макрофайл  ME5  был слегка переделан для того, чтобы на
нажание  повторное  нажатие  F1  в  подсказке на экран вываливался не почти
бесполезный   в   повседневной  работе  ACI_Hype.hlp,  а  список  доступных
подсказок  для  быстрого доступа к необходимой из файла HelpList.hlp. Кроме
того, работа в режиме PASTE (F4) расширена использованием клавиш Home, End,
PgUp  и  PgDn  для  быстрого  перемещения к границам экрана (в ME5 этого не
было).  Также  добавлен  новый  ключ  /LN=nn, где nn - номер гипертекстовой
ссылки на экране (для поддержки макроса VAUtil^LastHelp).

Кроме  того,  в моей клавиатурной раскладке на клавишу F1 назначен не вызов
макроса  UserIn^MainHelp, который просто вызывает ME.HLP на полный экран, а
вызов  MeHelp  с  параметром  /F=HelpList,  чтобы получать список доступных
HELP-ов также и из режима редактирования.

Пример файла HelpList.hlp предоставлен здесь же.

 FC.mac
--------
В  свое  время  в  комплекте  с  MS-DOS  3.30a  фирмы  AST появилась у меня
программа  FC.exe  для  сравнения  текстовых  файлов.  Ой, до чего полезная
программа  оказалась!  Но  после  работы  с  ней  остается  тонкое  чувство
неловкости,  особенно  когда  над  отличающимися  местами  нужно произвести
некоторые  действия.  Ну  и  под одну из работ сделал я предлагаемый Вашему
вниманию  макрос:  FC.mac  -  сравнение  текстов  в  двух  различных  окнах
Multi-Edit.  На  сегодня  это  версия  1.20.  Все  ее  возможности  в файле
VAMacros.hlp,  а  вкратце для начала работа такая - загружаете сравниваемые
файлы,  помечаете окна командами FC^Win1 и FC^Win2, ставите курсоры в окнах
на  одинаковые  строчки, с которых Вы желаете начать сравнение и запускаете
макрос  FC.  Первые  встреченные  отличающиеся  участки помечаются строчной
маркировкой.

 Karbind.mac
-------------
Я  видел  системы, написанные на языках DBase-пакетов, которые поставляются
заказчикам  в  компилированном  виде  (что  само  по себе обычное дело). Но
многие  системы  содержат в своем составе несколько таких файлов (известный
мне  максимум  -  более  200  скомпилированных  файлов).  Так  как мне тоже
приходилось  сопровождать  DBase-системы, то куча неприятностей происходила
из-за  несоответствия  версий отдельных кусочков (да и на диске эта россыпь
занимает   втрое   больше   места,  чем  дозволено).  Оригинальный  сборщик
PRG-файлов   был   слабым  помощником,  поэтому  я  написал  макрос  сборки
PRG-файлов  в  один  программный модуль. Задача была такая - система должна
работать как в виде PRG-россыпи, так и в собранном в один модуль файле. Мой
макрос  делает  это, создавая один процедурный файл и удаляя из PRG-текстов
переназначения  на  другие  процедурные  файлы.  Работа системы несложная -
создается  список  файлов  системы  (стартовый  модуль  ставится  первым, а
остальные  - как попало (или по частоте использования)), список загружается
в Multi-Edit и помечается макросом VaUtil^SetListFile (макрос запускается в
окне   с   этим   списком),   затем   создается   новый   PRG-файл  (обычно
<имя-стартового-модуля>main.prg)   и   в   этом   окне  запускается  макрос
Karbind.mac. Компилируете полученный текст и отдаете заказчику.

 VAUtil.mac
------------
В  этом  файле у меня изначально собирались часто используемые мной макросы
(некоторые  из  них  заимствованы,  в  основном у Алексея Романова (БОЛЬШОЕ
СПАСИБО  ему  за  них)),  а  также клавиатурные макросы. Регистр параметров
макросов  в  основном  неважен.  Итак,  кратко  (полная  информация в файле
VAMacros.hlp):

  Row2Top - Макрос помещает текущую строку вверху экрана

  CenterRow - Макрос центрирования текущей строки на экране

  WorkCenterRow - Макрос помещения текущей строки в первую четверть окна

  DelBlank  -  Макрос  удаления  пустых  строк: с текущей строки; /B - выше
     текущей строки; /A - ниже текущей строки

  InsertBlank  - Макрос вставки пустой строки: в текущую строку со сдвижкой
     текста вниз; /B - выше текущей строки; /A - ниже текущей строки

  ShiftLeft (kbd) - Макрос сдвига БЛОЧНОЙ или строчной маркировки влево. Из
     сдвигаемого  текста  в  месте  сдвижки  удаляются  ПРОБЕЛЫ. При сдвиге
     блочной  маркировки  шаг  сдвига устанавливается равным ширине блочной
     маркировки.

  ShiftRight  (kbd) - Макрос сдвига блочной или строчной маркировки вправо.
     При сдвиге блочной маркировки шаг сдвига устанавливается равным ширине
     блочной маркировки.

  LastPageBreak  (kbd)  -  Макрос  переводит  курсор  на  предыдущую  МЕТКУ
     страницы

  NextPageBreak (kbd) - Макрос переводит курсор на следующую МЕТКУ страницы

Примечание:  Редактируя  различные  файлы,  я ставлю в нужных местах текста
метки,  на которые вышеописанными командами перескакиваю. Преимущество их в
том,  что  они  в  отличие  от RANDOM ACCESS MARK сохраняются до следующего
сеанса редактирования и игнорируются компиляторами. Для файла с расширением
PAS  метка  "{*}",  для  CPP  - "//---" в начале строки, для ASM - ";---" в
начале  строки,  для SRC и S - "$macro " и "macro " соответственно в начале
строки, для PRG - "proc" в начале строки. Для остальных расширений метка
остается прежней - символ перевода листа (0Ch).

  RunLastMacro (kbd) - Макрос выполнения последнего запущенного макроса

  DispAsciiCode (kbd) - Макpос показа кода символа под куpсоpом

  ContextHelp  (kbd)  -  Макрос  выдачи  контекстной подсказки для файлов с
     расширениями PAS, SRC и PRG (старый)

  LastHelp  (kbd)  -  Вызов  HELP-системы  с  предыдущим  просматривавшимся
     HELP-ом

  GetInt  -  Макрос  ввода  числа  в  Return_Int с подсказкой из Return_Str
     (старый)

  GetWord  -  Макрос  возвращения  слова  рядом  с  курсором  в  переменной
     Return_Str

  Text2Search (kbd) - Макрос перевода слова в меню поиска

  Text2Replace  (kbd) - Макрос перевода слова в строку замены меню поиска и
     замены 

  GetMarkLine  -  Макрос  для  возвращения  помеченного текста в переменной
     Return_Str (старый)

  Capitalize (kbd) - Перевод слова под курсором в Нормализованную форму

  MarkWord (kbd) - Пометка слова под курсором

  FindExtraChars  -  Макрос  поиска в готовом тексте символов, выходящих за
     правую границу текста.

  FindBlankLine - Макpос поиска пеpвой пустой стpоки в тексте

  Trim - Макрос удаления из текста табуляций и концевых пробелов

  SetListFile  -  Макрос  установки метки файла списка файлов. Данная метка
     используется макросом выполнения указанного макроса для списка файлов.
     Файл списка файлов должен содержать в строке на первом месте имя файла
     без  пробелов  между  именем и расширением, а затем через пробел может
     содержать любую информацию (например, о файле)

  GetFileName  -  Макрос  возвращает  следующее имя файла для обработки или
     пустое имя, если файл кончился.

  Внимание:  RunMacroForList  -  Запускает переданную строку параметров как
     макрос  для  всех  файлов в файле списке файлов. Вообще-то этот макрос
     сильно  полезен  для  меня  потому,  что у меня существует собственная
     система  подготовки  тех.  документации,  и  этой  группой  макросов я
     собираю  оглавление,  расставляю  номара  страниц  и прочее. Другим он
     может совсем не пригодиться.


10.02.93                             С уважением, Мунтьянов Вячеслав, Пермь
                                                  тел. (3422) 34-72-69(дом)
