Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Общие вопросы > Регулярные выражения |
Автор: Роман2 5.5.2014, 11:35 |
На вход программы подается текстовый файл содержащий только описания переменных на Паскале. Проанализировать переменные при помощи регулярных выражений и выдать результат проверки о корректности, синтаксической ошибке или дублировании имени. Я составил блок-схему. Но у меня не получается CASE и цикл в нормальной форме. Помогите, пожалуйста! Заранее благодарен. Роман. |
Автор: Akella 5.5.2014, 12:50 |
Забыл задать вопрос. |
Автор: Poseidon 5.5.2014, 16:12 |
Без формата текстового файла даже и подсказать нечего. |
Автор: Роман2 6.5.2014, 02:48 | ||
как составить эту программу? Текстовый файл:
|
Автор: Akella 6.5.2014, 09:03 |
Открываешь Delphi, создаёшь новый проект и пишешь программу. |
Автор: Роман2 6.5.2014, 09:15 | ||||
Допустим я составил программу по открытию файла txt. Но мне нужно пробежаться по всем строкам через регулярные выражения и проверить, не ошибся ли я в правильности команд и переменных. Как организовать построчную проверку? Вначале я думаю нужно /^var/ А дальше? Вот пример - извлечение чисел из введённой строки.
|
Автор: Akella 6.5.2014, 10:47 |
Модератор: пользуйтесь кнопкой КОД!!!!!!!!!!!!!!!!!!! Добавлено через 20 секунд Отредактируй своё сообщение. Добавлено через 42 секунды читать до просветления http://forum.vingrad.ru/forum/topic-353769.html |
Автор: Роман2 6.5.2014, 10:52 |
Как организовать построчную проверку? Вначале я написал /^var/ А дальше? у меня не получается CASE и цикл в нормальной форме |
Автор: Poseidon 6.5.2014, 11:41 |
Самый простой способ - при помощи TStringList. |
Автор: Роман2 6.5.2014, 11:44 |
Или подскажите, где найти пример и разъяснение, как это сделать... У меня не получается что-то. |
Автор: bems 7.5.2014, 03:49 |
http://ru.wikipedia.org/wiki/%D0%9D%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D1%8F%D1%89%D0%B8%D0%B9_%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7, не регулярки |
Автор: Роман2 7.5.2014, 11:49 |
Как нисходящий парсер мне поможет? Ну, может быть, есть у кого-нибудь идеи? |
Автор: bems 7.5.2014, 15:30 | ||
сначала разбиваешь входной текст на лексемы, потом парсишь его сверху вниз. оригинальный паскаль парсился http://ru.wikipedia.org/wiki/LL%281%29, современные диалекты чуть посложнее Добавлено через 11 минут и 16 секунд
|
Автор: Poseidon 7.5.2014, 16:52 | ||
Case вообще много где может быть в коде, но только каким он боком вообще тут упомянут
|
Автор: Роман2 8.5.2014, 02:44 |
Я написал, что мне нужно Проанализировать переменные при помощи регулярных выражений и выдать результат проверки о корректности, синтаксической ошибке или дублировании имени. (На вход программы подается текстовый файл содержащий только описания переменных на Паскале. ) Затем я написал - что я пробовал многое (/^var/ , пробовал CASE, пробовал цикл и так далее , но у меня не получилось...) |
Автор: bems 8.5.2014, 03:53 | ||
|
Автор: Роман2 8.5.2014, 04:35 |
я имел ввиду цикл - как проверять несколько строк? |
Автор: bems 8.5.2014, 07:33 | ||||
в паскале конец строки это просто разделитель вроде пробела (кроме случаев когда он встречается в однострочном комментарии и внутри строкового литерала). например
|
Автор: Poseidon 8.5.2014, 10:35 | ||
|