powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Parser строки sql where
25 сообщений из 66, страница 2 из 3
Parser строки sql where
    #39113353
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrVoidAntonariy,

Что за бред? У меня-то универсальное решение - в независимости от количества этих POST и TEST.
Так что примерь-ка facepalm!
NechtoДа строка where должна иметь только такую структуру.
Так что мимо.

Универсальное решение - это законченный лексер и парсер.
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113355
MrVoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, "сдаёмсу!" © :-)
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113360
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
            String str = @"(TEST1 = 111 OR TEST1 = 222) AND (POST1 = 555)";
            String[] words = str.Split(new Char[] {' ', '(', ')'});
            for (Int32 i = 1; i < words.Length - 1; i++) {
                if (words[i].Equals("=")) Console.WriteLine("{0}={1}", words[i - 1], words[i + 1]);
            }
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113367
MrVoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

ТСу нужен другой вывод на экран...
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113373
MrVoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Код: c#
1.
Regex.Matches(str, @"(?'name'(TEST|POST))\d+\s*?=\s*?(?'number'\d+)").Cast<Match>().ToList().ForEach(m => Console.WriteLine(m.Groups["name"].Value + "=" + m.Groups["number"].Value));
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113381
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrVoidAntonariy, или тебя количество фигурных скобок смущает? Так я могу убрать. меня смущает твое игнорирование ТЗ: авторДа строка where должна иметь только такую структуру.
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113486
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoДа строка where должна иметь только такую структуру.
грамматика описана?
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113498
MrVoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, уговорили))) В одну строку:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
Regex.Matches(str, @"(?'name'(TEST|POST))\d+\s*?=\s*?(?'number'\d+)").
	Cast<Match>().GroupBy(m => m.Groups["name"].Value).
	ToList().
	ForEach(group =>
	{
		Console.WriteLine(group.Key);
		group.ToList().ForEach(g => Console.WriteLine("\t" + g.Groups["number"].Value));
	});
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113505
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилграмматика описана?
ага.
msdn<search_condition> ::=
{ [ NOT ] <predicate> | ( <search_condition> ) }
[ { AND | OR } [ NOT ] { <predicate> | ( <search_condition> ) } ]
[ ,...n ]
<predicate> ::=
{ expression { = | < > | ! = | > | > = | ! > | < | < = | ! < } expression
| string_expression [ NOT ] LIKE string_expression
[ ESCAPE 'escape_character' ]
| expression [ NOT ] BETWEEN expression AND expression
| expression IS [ NOT ] NULL
| CONTAINS
( { column | * } , '<contains_search_condition>' )
| FREETEXT ( { column | * } , 'freetext_string' )
| expression [ NOT ] IN ( subquery | expression [ ,...n ] )
| expression { = | < > | ! = | > | > = | ! > | < | < = | ! < }
{ ALL | SOME | ANY} ( subquery )
| EXISTS ( subquery ) }
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113567
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

КС грамматика, однако
регулярками - не разбирается
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113701
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если where для MSSQL'ного запроса, то для этого варианта парсер есть, эта тема несколько раз обсуждалась в MSSQL'ном разделе. Вот, например .
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113774
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113804
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113842
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВhVostt http://sergeyteplyakov.blogspot.ru/2010/12/dynamic-linq.html
А это тут причем?

разбор выражения из строки и превращение его в дерево.
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113927
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
разбор выражения из строки и превращение его в дерево.
Таки тама сышарп разбирается не эскуелъ!
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113930
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВТаки тама сышарп разбирается не эскуелъ!

Приведённый пример автором с самого начала треда легко разберёт. И более сложные условия тоже.
А про всякие вендорные кличевеки и конструкции речи не шло.
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113983
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Приведённый пример автором с самого начала треда легко разберёт. И более сложные условия тоже.
А про всякие вендорные кличевеки и конструкции речи не шло.
А посля надоть писать свой визитор, дабы получить чего хотелось?
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113986
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DynamicLINQ
+1
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113988
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ANTLR!
...
Рейтинг: 0 / 0
Parser строки sql where
    #39113994
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAANTLR!
Он тут нинакукуй не нужно :)
...
Рейтинг: 0 / 0
Parser строки sql where
    #39114021
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronskyANAANTLR!
Он тут нинакукуй не нужно :)Как и DynamicLINQ :)
...
Рейтинг: 0 / 0
Parser строки sql where
    #39114025
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, так я не понял, автор топика не написал парсер? Если да, надо бы коммерциализировать.
...
Рейтинг: 0 / 0
Parser строки sql where
    #39114062
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronskyANA, так я не понял, автор топика не написал парсер? Если да, надо бы коммерциализировать.Нет, не написал.
...
Рейтинг: 0 / 0
Parser строки sql where
    #39114148
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВА посля надоть писать свой визитор, дабы получить чего хотелось?

Ну а после, имея дерево выражений, мы можем его использовать. Ну или обойти дерево и прочитать.
...
Рейтинг: 0 / 0
Parser строки sql where
    #39114153
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
25 сообщений из 66, страница 2 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Parser строки sql where
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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