2016-12-08 8 views
7

Как я могу каталогизировать, индексировать и/или печатать исходный код VB6 с каждой суб или функцией на своей собственной странице ..? Я хотел бы сделать это с бесплатными или включенными надстройками Visual Studio, если это возможно, но я не против писать что-то сам. Я знаком с «Microsoft Visual Basic для расширяемости приложений», и похоже, что у VB6 есть аналогичный модуль, который может позволить мне просто «для каждого» через коллекцию модулей кода и бросить субтитры на принтер один на одном время. Это займет, наверное, 10-15 строк кода.Как я могу каталогизировать, индексировать и/или печатать исходный код VB6, с каждой суб/функцией на странице ..?

Первым моим приоритетом является печать, предпочтительно с каждой суб/функцией на собственной странице, но с обычной функцией печати IDE весь код работает вместе в одной длинной распечатке. Затем после этого я хотел бы создать индекс/ток имен каждой под, функции, переменной и константы в каждом VBP. У нас есть Visual Studio 6.0 Enterprise Edition, но, похоже, в этом нет ничего, чтобы делать какие-либо из этих вещей.

Вы можете смеяться и спрашивать: «Почему VB6 .. ?? LOL !!». Это связано с тем, что мне было поручено обновить и изменить исходный код VB6 большой программной системы, которая работает на заводе. Он находится в изолированной сети без подключения к внешнему миру, и он работает отлично уже 14 лет, но теперь они хотят начать обновление некоторых вещей. Система состоит из множества файлов VBP, каждая из которых имеет множество модулей и форм.

Редактировать: Я попытался найти ответ на этот вопрос, но это оказалось невозможным. Все, что я получил, было закодированным образцом о печати из приложений, написанных на VB6, а не для печати исходного кода из среды IDE.

+0

Возможно, начните с рассмотрения этих продуктов: http://www.aivosto.com/ – Bob77

ответ

1

Написать надпись. Это намного проще, чем вы могли бы подозревать.

Получить книгу «Разработка надстроек Visual Basic» Стивена Романа (O'Really, 1999, ISBN 1-56592-527-0).

0

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

Наши Source Code Search Engine знает лексические элементы многих языков, в частности, VB6. Он считывает базу исходного кода (тысячи файлов) и строит индекс, который помогает быстро находить элементы кода. Используя свой графический интерфейс, вы можете писать запросы с точки зрения языковых элементов для поиска фрагментов кода, таких как:

 S=*Login* 

найти строки (только), которые содержат текст «Логин» (используя простые маски), или

 'SUB' I=/[Aa]ccount.*/ 

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

 'IF' ... N>17<35 

найти IF заявления, в которых используют y от 17 до 35 («..» означает «рядом»). Элемент запроса N позволяет быстро и легко найти константу.

Действительно мощное свойство языка запросов «а не». Это позволяет построить неаккуратно запрос, который находит «слишком много», а затем устранить «слишком много» части:

 I '+' I - I=xyz 

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

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

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

+0

Я знаю, что я не считал базу данных, доступную для поиска. Я хотел напечатать что-то напечатанное, потому что мне нужно (и уже) сделать много карандашных заметок в коде. Является ли ваш продукт timebombware или crippleware? Страница загрузки отправляет меня в большую информационную форму, но не упоминает никаких затрат. – spinjector

+0

Как только вы просматриваете файл, вы можете попросить его обратиться к редактору; вы можете использовать это, чтобы просто вводить свои заметки в качестве комментариев в коде. Regard xxxware: это коммерческий продукт. Спросите на сайте о цене. Он будет работать в режиме оценки для базы данных с минимальным размером. –

2

Вам не нужно правильно разбирать код в соответствии с вашими требованиями. Напиши что-нибудь. Вы можете выводить на принтер или в файлы HTML. Я сделал это один раз, он работал нормально.

Файлы исходного кода - это просто текстовые файлы. Прочитайте файлы по строкам, распечатайте каждую строку. Начните новую страницу каждый раз, когда вы видите «end sub» или «end function» или «end property». Таким образом, каждый метод запускается на отдельной странице. Файлы FRM имеют определения управления сверху, вы можете пропустить это, просто ища строку, содержащую только «конец». Код начинается там.

Если вы делаете много VB6, я также рекомендую получить блестящее дополнение в MZ Tools. Он имеет отличные инструменты поиска. К сожалению, больше не бесплатно, а стоит денег ИМХО. У меня нет связей с продавцом.

+1

Совместимость * удобный * код достаточно прост (хотя вы не заметите, что вам придется искать модификаторы доступа, такие как 'Private',' Public', 'Friend' и' Static', а также для 'Property Get/Let/Set'), но это становится интересным, когда в ваших подписях процедур есть продолжение строк или продолжение комментариев, которые имеют строки, начинающиеся с 'End Sub' – ThunderFrame

+1

На самом деле бесплатная версия MZ-Tools больше недоступна и теперь исключительно доступной как коммерческая лицензия. – ThunderFrame

1

Разбор модуля для процедур и функций hard, поверьте me. В частности, с линии продолжений, как это:

_ 
Public _ 
Sub _ 
Foo() ' _ 
End Sub 
_ 
End _ 
_ 
Sub _ 

Кроме того, свойство может быть заканчивалось End Property, но и с End Function или End Sub

К счастью, VBIDE для VB6 имеет больше классов и методов для работы с VB проектов чем версия VBA VBA.

Одним из них является CodePane.Members свойством, которое возвращает коллекцию всех идентификаторов (хотя, я думаю, что это не включает Type и Enum идентификаторов, но они объявлены в разделе объявлений модуля в любом случае) в модуле.

enter image description here

И каждый член предоставляет различные свойства, включая его местоположение в модуле: enter image description here

Если вы заинтересованы в анализе более подробно, и в полнофункциональной Надстройка для IDE, вы должны посмотреть на Rubberduck-VBA на GitHub (я являюсь автором). В настоящее время он работает с хостами VBA, но VB6 находится на дорожной карте. Он имеет один из самых надежных парсеров VB, и он работает с открытым исходным кодом.