|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Здравствуйте! Помогите доделать парсер Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
// На выходе хочу получить лист: List<string, string[]> TEST1, { 111, 222 } POST1, { 555 } ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 13:50 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
а так же доделать Код: sql 1.
нет, тут что-то в консерватории менять надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 13:56 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Antonariyа так же доделать Код: sql 1.
нет, тут что-то в консерватории менять надо. Нет в консерватории все так как надо! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 14:02 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Как то так, не совсем красиво но работает. Если у кого есть какие более короче варианты, прошу выложить. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 14:24 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Модератор, прости меня, на медиа меня сегодня потянуло. Если будешь банить, то не дольше суток, договорились? НО!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 14:32 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
AxeleronМодератор, прости меня, на медиа меня сегодня потянуло. Если будешь банить, то не дольше суток, договорились? НО!!! Терпеть не могу, когда начинают тролить вместо того чтобы подсказать! Нет желания подсказать, воздержись от бесполезных постов! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 14:50 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Nechto// На выходе хочу получить лист: List<string, string[]> А если так будет? Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 15:02 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
NechtoAxeleronМодератор, прости меня, на медиа меня сегодня потянуло. Если будешь банить, то не дольше суток, договорились? НО!!! Терпеть не могу, когда начинают тролить вместо того чтобы подсказать! Нет желания подсказать, воздержись от бесполезных постов! Юноша, главное не теряйте надежды! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 15:05 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Dima TNechto// На выходе хочу получить лист: List<string, string[]> А если так будет? Код: c# 1.
Я понять не могу причем синтаксис условия WHERE. Если я спрашиваю про парсер стоки? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 15:06 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
AxeleronNechtoпропущено... Терпеть не могу, когда начинают тролить вместо того чтобы подсказать! Нет желания подсказать, воздержись от бесполезных постов! Юноша, главное не теряйте надежды! Не переживай не потеряю! А вам не зазнаться! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 15:09 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
NechtoТерпеть не могу, когда начинают тролить вместо того чтобы подсказать! Пиши полноценный лексический и синтаксический анализатор SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 15:25 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
NechtoЯ понять не могу причем синтаксис условия WHERE. Если я спрашиваю про парсер стоки? Тему топику не я придумал: NechtoParser строки sql where ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 15:28 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
NechtoDima Tпропущено... А если так будет? Код: c# 1.
Я понять не могу причем синтаксис условия WHERE. Если я спрашиваю про парсер стоки?Может быть потому что в условиях написано "Parser строки sql where "? Если строка именно такая и никакая больше, то занафига все эти кренделя с linq? Просто вытаскиваем =\s*(\d+), первые два матча это TEST1, второй POST1. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 15:30 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Antonariy второй третий POST1. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 15:31 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
AntonariyNechtoпропущено... Я понять не могу причем синтаксис условия WHERE. Если я спрашиваю про парсер стоки?Может быть потому что в условиях написано "Parser строки sql where "? Если строка именно такая и никакая больше, то занафига все эти кренделя с linq? Просто вытаскиваем =\s*(\d+), первые два матча это TEST1, второй POST1. Да строка where должна иметь только такую структуру. А как же значения? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 15:34 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
(\d+) это и есть значения. при условии, что это целые положительные числа. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 15:45 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 15:49 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
MrVoid Код: c# 1. 2.
бредятина ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 15:51 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Antonariy, Писал без студии :) Код: c# 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 16:12 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
offMrVoidПисал без студии :) Без ансамбля. Сам, $ля. Один, $ля. Сорри, детство вспомнилось ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 16:17 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Shocker.Pro, off too :)Я, ктому же, ещё и собаку забыл. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 16:19 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Или ещё короче: Код: c# 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 16:31 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
MrVoidИли ещё короче: Код: c# 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.
да все равно facepalm.jpg Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 16:37 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Antonariy, Что за бред? У меня-то универсальное решение - в независимости от количества этих POST и TEST. Так что примерь-ка facepalm! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 16:41 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Antonariy, или тебя количество фигурных скобок смущает? Так я могу убрать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 16:42 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
MrVoidAntonariy, Что за бред? У меня-то универсальное решение - в независимости от количества этих POST и TEST. Так что примерь-ка facepalm! NechtoДа строка where должна иметь только такую структуру. Так что мимо. Универсальное решение - это законченный лексер и парсер. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 16:43 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
skyANA, "сдаёмсу!" © :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 16:45 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 16:47 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Dima T, ТСу нужен другой вывод на экран... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 16:50 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Dima T, Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 16:54 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
MrVoidAntonariy, или тебя количество фигурных скобок смущает? Так я могу убрать. меня смущает твое игнорирование ТЗ: авторДа строка where должна иметь только такую структуру. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 17:01 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
NechtoДа строка where должна иметь только такую структуру. грамматика описана? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 18:33 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Ладно, уговорили))) В одну строку: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 18:47 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Изопропилграмматика описана? ага. 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 ) } ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 18:54 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
ЕвгенийВ, КС грамматика, однако регулярками - не разбирается ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 20:45 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Если where для MSSQL'ного запроса, то для этого варианта парсер есть, эта тема несколько раз обсуждалась в MSSQL'ном разделе. Вот, например . ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 06:55 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
hVostt http://sergeyteplyakov.blogspot.ru/2010/12/dynamic-linq.html А это тут причем? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 10:41 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
ЕвгенийВhVostt http://sergeyteplyakov.blogspot.ru/2010/12/dynamic-linq.html А это тут причем? разбор выражения из строки и превращение его в дерево. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 11:28 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
hVostt разбор выражения из строки и превращение его в дерево. Таки тама сышарп разбирается не эскуелъ! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 12:46 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
ЕвгенийВТаки тама сышарп разбирается не эскуелъ! Приведённый пример автором с самого начала треда легко разберёт. И более сложные условия тоже. А про всякие вендорные кличевеки и конструкции речи не шло. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 12:49 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
hVostt Приведённый пример автором с самого начала треда легко разберёт. И более сложные условия тоже. А про всякие вендорные кличевеки и конструкции речи не шло. А посля надоть писать свой визитор, дабы получить чего хотелось? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 13:28 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
DynamicLINQ +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 13:31 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
skyANAANTLR! Он тут нинакукуй не нужно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 13:38 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
AxeleronskyANAANTLR! Он тут нинакукуй не нужно :)Как и DynamicLINQ :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 14:03 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
skyANA, так я не понял, автор топика не написал парсер? Если да, надо бы коммерциализировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 14:07 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
AxeleronskyANA, так я не понял, автор топика не написал парсер? Если да, надо бы коммерциализировать.Нет, не написал. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 14:31 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
ЕвгенийВА посля надоть писать свой визитор, дабы получить чего хотелось? Ну а после, имея дерево выражений, мы можем его использовать. Ну или обойти дерево и прочитать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 15:35 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Dima T Код: c# 1. 2. 3. 4. 5.
Самое лучшее решение ))) Все остальное - мозголомное баловство ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 19:11 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Arm79Самое лучшее решение ))) Все остальное - мозголомное баловство Спасибо, КЭП! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 21:19 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Arm79Самое лучшее решение ))) Все остальное - мозголомное баловство так и скажи - формальные грамматики и синтаксический разбор - не осилил ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2015, 00:22 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
ИзопропилArm79Самое лучшее решение ))) Все остальное - мозголомное баловство так и скажи - формальные грамматики и синтаксический разбор - не осилил Не-а, не осилил. Так и думал, что для жестко заданного формата строки нужно обязательно "формальные грамматики и синтаксический разбор" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2015, 07:48 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
В общем два варианта, которые выполняют поставленную задачу. Строка может быть разной, эту строку я привил для примера. А так может быть все что угодно. Код: c# 1.
Dima T Код: c# 1. 2. 3. 4. 5.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 07:34 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Еще не утомились? Какие выносливые и упрямые :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 14:17 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Axeleron, не мытьём так катанием! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 14:24 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Axeleron, Вам есть что предложить? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2015, 08:52 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
NechtoСтрока может быть разной Ну правильно - нахрена об этом сразу говорить? Я в самом конце скажу. :) Молодец, автор! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2015, 09:04 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Arm79Так и думал, что для жестко заданного формата строки нужно обязательно "формальные грамматики и синтаксический разбор" а что, есть описание "жёстко заданного формата"? если нет - остаётся предположить некое подмножество ANSI SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2015, 10:05 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
NechtoAxeleron, Вам есть что предложить? Мне предложить нечего, я велосипеды не пишу. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2015, 12:59 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
ИзопропилArm79Так и думал, что для жестко заданного формата строки нужно обязательно "формальные грамматики и синтаксический разбор" а что, есть описание "жёстко заданного формата"? если нет - остаётся предположить некое подмножество ANSI SQL Да не, я то ориентировался на утверждение ТС, что строка фиксированного формата, а оказывается - что нет. Так что без анализа строки не обойтись ))) А там такое замудрить можно... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2015, 13:43 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Arm79Да не, я то ориентировался на утверждение ТС, что строка фиксированного формата и ты повёлся ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2015, 13:48 |
|
Parser строки sql where
|
|||
---|---|---|---|
#18+
Nechto, А откуда берется сам запрос, который надо парсить? Я подозреваю - что он генерируется на основе данных формы. Причем генератор не слишком умный и замысловатые конструкции вроде exists не вставляет. Так почему бы не допилить генератор, чтобы он откладывал доп-условия в сторонку. В целом согласен с предшествующими участниками дискуссии. оно конечно написать нисходящий разбор узкого подмножества SQL можно.... если точно знать все ограничения. Например - select из одной таблицы или из многих, в качестве условий - равенства полю константе или более сложные выражения, и т д. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2015, 14:08 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1401011]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
others: | 374ms |
total: | 538ms |
0 / 0 |