2016-12-30 9 views
-3

Я хотел бы попытаться проанализировать код VB, чтобы проанализировать некоторые функции/subs.Как я могу разобрать код VB6 для подсчета меток LOC?

В какой библиотеке или методе вы рекомендуете разбирать код VB? Моя идея - подсчитать их и получить количество строк каждого из них. (Я анализирую файлы VB4, VB5 и VB6). Я обычно код в C# и Python.

Спасибо

+0

Пожалуйста, прочитайте [Помощь]. Вопросы, требующие библиотеки или другие ресурсы, не соответствуют теме. –

+0

Мои соболезнования. Перед .NET VB было * много * жестко закодированных исключительных случаев, поэтому никогда не было простого способа переноса с VB6 на VB.NET. Такие вещи, как свойства по умолчанию, означали, что * очень * часто вы не знали, что вы назовете - значение текстового поля или его свойство текста? Вот почему не было инструментов рефакторинга VB6. Вы можете найти генератор синтаксического анализатора с синтаксисом VB6, но вы должны ожидать найти множество проблем –

+0

@ rory.ap, напротив, это очень специфический вопрос, хорошо понятый беженцами VB6. Тогда это была большая боль, еще больше. Проблема не в том, какой инструмент предложить, но если есть * любые инструменты –

ответ

0

Я, наконец, следовал рекомендациям @PanagiotisKanavos. Я использовал регулярные выражения, как этот:

var regex = new Regex(@"(Private\s|Public\s)*(Function|Sub)+\s(\w+)(\s*)(\()", RegexOptions.IgnoreCase); 

Это регулярное выражение действительно полезно, потому что он позволяет избежать импорта библиотек в VB3-6. Наконец, способ подсчета строк кода следовал за «End Sub» или «End Function». Я не знаю, использует ли VB3-6 другой способ завершения функций и методов.

Надеюсь, это будет полезно для некоторых.

1

Много кода строки подсчета приложений доступны для VB6 (https://www.google.com/search?q=vb6+count+lines+of+code). Я использовал то, что в настоящий момент является первым хитом этого поискового поиска (http://www.freevbcode.com/ShowCode.asp?ID=1975), и это сделало надежную работу для наших нужд.

Он выводит статистику по каждому модулю, это может быть в соответствии с тем, что вы ищете? Например:

Module Name: mymodule.bas 

      2,662 Total number of lines of code 
      2,619 Miscellaneous lines of code 
       21 Sub routine headings 
       7 Function routine headings 
       0 Property Let routine headings 
       0 Property Get routine headings 
       0 Property Set routine headings 
       0 API Declare statements 
       15 Constant variables 
       0 Type Structures 
       1 Auto generated lines (Not Included) 
      363 Blank lines (Not Included) 
      1,488 Comment lines (Not Included) 

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

+0

Спасибо @MarkL, я обнаружил, что когда я пытался найти что-то похожее на мои требования. Но мне нужно подсчитать строки кода каждой функции и получить имена функций. Спасибо за ссылку. – shinjidev

+0

Как я уже отмечал, источник доступен для этого приложения, он, очевидно, идентифицирует суб и функции, поэтому я думаю, что не будет большой работы, чтобы он подсчитывал и документировал линии между суб/функцией и конечным подпунктом/функция. Но я не рассматривал этот источник, так что это немного догадка с моей стороны. Удачи! – MarkL

 Смежные вопросы

  • Нет связанных вопросов^_^