powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выделение текста, Regex или что то другое?
4 сообщений из 4, страница 1 из 1
Выделение текста, Regex или что то другое?
    #39032703
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго времени суток.

Занимаюсь фигней Решил немного поразвлекаться с Regex.

Собственно дано: текстовая переменная которая содержит вот такой вот псевдокод:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
VBNET{
	<IMPORTS>
		System
		System.Text
		System.Text.RegularExpressions
		System.Windows.Forms
	</IMPORTS>

	<FIELDS>
		public pcx_Flags as Integer = 0
		public pcx_ErrFlags as Integer = 0
		public _cell as Integer = 0
		private _LargeName as String = ""
	</FIELDS>

	<PROPERTIES>
		Public Property prop_LargeName as String
           		Get
                 		return _LargeName
           		End Get
           		Set (ByVal value as String)
                 		_LargeName = value
           		End Set
		End Property
	</PROPERTIES>
}

TSQL{
	select id as rowID, value as LargeName, flags as Flags, InstructionList as Code from tCompileObjects where QueryID = %1
}

VBNET{
        <FIELDS>
               private _val as String = ""
               protected friend MainClass as Object = Nothing
        </FIELDS>
	<METHODS>
        	public sub GetCode(QueryID as Int32)  As String
                    	Dim cdr = new CodeReader(Programm.ActiveConnection, QueryID)
                    	Dim rd = CodeReader.Open()
                    	While rd.Read()
                               	Programm.DynRowset.Add(rd.Current)
                    	WEnd
        	end sub
	</METHODS>

	<ACTIVE_METHOD>
        	GetCode(%1)
	</ACTIVE_METHOD>
}



необходимо прогнать данный код через некий парсер что бы найти все вхождения инструкций в блоках VBNET{} разбить их на составляющие <IMPORTS>, <FIELDS>, <PROPERTIES>, <METHODS>, <ACTIVE_METHOD>
произвести конкатенацию данных блоков и присвоить их текстовым переменным

Код: vbnet
1.
Dim str_Imports, str_Fields, str_Properties, str_Methods, str_ActiveMethod as String



грубо говоря: в переменной str_Imports в итоге должно оказаться:
Код: vbnet
1.
2.
3.
4.
System
System.Text
System.Text.RegularExpressions
System.Windows.Forms



в переменной str_Fields:
Код: vbnet
1.
2.
3.
4.
5.
6.
public pcx_Flags as Integer = 0
public pcx_ErrFlags as Integer = 0
public _cell as Integer = 0
private _LargeName as String = ""
private _val as String = ""
protected friend MainClass as Object = Nothing



табуляцию вставил для наглядности, а вот перенос строк в тексте должен быть сохранен

Есть идеи как лучше реализовать?
Сейчас курю документацию по RegEx, если найду вариант решения раньше отпишу сдесь
...
Рейтинг: 0 / 0
Выделение текста, Regex или что то другое?
    #39032716
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и кстати. Сложность вот в чем: псевдокод может содержать в себе куски содержащие фигурные скобки к примеру
Код: vbnet
1.
2.
3.
4.
5.
6.
TSQL{
         declare @x varchar(255), @y varchar(255)
         set @x = 'someclass{}'
         set @y = '{VALUE}'
         select @x as TAG1, @y as TAG2
}



или

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
CSHARP{
     <METHODS>
          public string DS_GetCellValue(int rowID)
          {
                 return this.DynRowset.GetRowValue(rowID);
          }
     </METHODS>
}



т.е. проблема в правильном нахождении закрывающих тегов для группировок областей
...
Рейтинг: 0 / 0
Выделение текста, Regex или что то другое?
    #39032719
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

а нельзя ли этот "псевдокод" превратить в полноценный XML?
...
Рейтинг: 0 / 0
Выделение текста, Regex или что то другое?
    #39032720
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvik,

уже думаю над этим
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выделение текста, Regex или что то другое?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]