45
Описание утилиты Replacer

 

Содержание:

Назначение:

Проблема: Некоторые редакторы, например Microsoft® FrontPage Editor 3.0, умудряется форматировать исходный код скриптов, причем порой в результате, код перестаёт корректно выполняться (например, код известного счётчика http://SpyLOG.com) :-(... однако, другие его возможности (я имею ввиду FrontPage Editor) мне лично нравятся, и у меня нет желания отказаться от него только по этой причине.
Решение: Я не стал сильно разбираться: как именно нужно исправить Java-script код, чтобы устранить отмеченную выше особенность, а просто написал предлагаемую Вашему вниманию утилиту, которая выполняет замещение всех вставок Script-кода в html-файлах указанного каталога (и во всех подкаталогах) на код из указанных Script-файлов. Кроме этого, мне показалось, что подобная утилита может быть полезна, не только для преодоления отмеченной проблемы...

Формат Script-файлов:
В начало

Для того, чтобы Script-код был однозначно распознаваемый в html-файлах он должен быть заключён в уникальные для него маркеры начала/конца кода. Соответственно эти же маркеры, должны быть помещены и в код соответствующих script-файлов. Чтобы не городить огород, легче всего просто поместить в такие маркеры названия Script-файлов, содержащих исходный код. Например:

Файл: MainPageCounter.js

<!-- MainPageCounter.js begin -->
  <!-- SpyLOG v.... -->
  .... здесь собственно script-код
  <!-- SpyLOG -->
<!-- MainPageCounter.js end -->

здесь жирным шрифтом выделены маркеры соответственно начала и конца script-кода, также обратите внимание, что:

Другими словами, первая строка script-файла, содержащая символ '<' в первой позиции интерпретируется как строка, содержащая маркер начала, и аналогично последняя строка с символом '<' в первой позиции - маркер конца. Надеюсь, для скриптов это не столь уж сильные ограничения :-)

Настройка параметров:
В начало

Изначально, я не собирался создавать какой-либо интерфейс для редактирования настроечных параметров этой утилиты, однако подумал, что в нашем изменяющемся мире это не помешает :-) поэтому используя средства MFC VC++ 6.0 я всё-таки это сделал. При этом, я использовал контролы, поставляемые с VS 6.0+SP4, и если у Вас это не так, то опять же, Вы можете воспользоваться исходным кодом на MS VC++ 6.0, чтобы настроить его на то, что Вы имеете...

Итак, вся настройка уместилась в одно окно свойств на двух его закладках: Source и Scriprs. На закладке Source, определяется месторасположение (Folder) и расширения файлов (Extensions), в которых требуется выполнять замещение script-кода, а также можно установить/отменить режим поиска таких файлов во всех подкаталогах (Include subfolders). 

repl1.jpg (13126 bytes)

Pic 1. Replacer properties: Source

На закладке Scriprs, Вы можете редактировать список Ваших script-файлов, код которых и будет вставлен, заменяя "испорченный код" в исходных файлах, указанных на закладке Source

repl2.jpg (20865 bytes)

Pic 2. Replacer properties: Scripts

т.е. здесь Вы можете:

И это вся настройка..., следует также сказать, что вся текущая информация храниться в системном реестре, ключ к которой надеюсь виден на следующем рисунке:

repl3.jpg (51128 bytes)

Pic 3. System Regestry Key

... и опять, если Вас это не устраивает измените соответствующий VC++ код... :-)

Протокол выполненных изменений:
В начало

Наконец, выполнив пункт меню Options\Update (и если ничего не произойдёт непредвиденного), Вы получите протокол выполненных изменений:

repl4.jpg (44275 bytes)

Здесь отображается информация следующим образом:

Заключительные замечания:
В начало

Прежде чем скачивать исходники, внимательно прочтите Заключительные замечания Скачать исходники [119KB]

 
 
Hosted by uCoz