![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Роман2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 23.6.2011 Репутация: нет Всего: нет |
На вход программы подается текстовый файл содержащий только описания переменных на Паскале.
Проанализировать переменные при помощи регулярных выражений и выдать результат проверки о корректности, синтаксической ошибке или дублировании имени. Я составил блок-схему. Но у меня не получается CASE и цикл в нормальной форме. Помогите, пожалуйста! Заранее благодарен. Роман. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Забыл задать вопрос.
|
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Без формата текстового файла даже и подсказать нечего.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Роман2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 23.6.2011 Репутация: нет Всего: нет |
как составить эту программу?
Текстовый файл:
Это сообщение отредактировал(а) Poseidon - 6.5.2014, 08:48 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
Роман2 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 23.6.2011 Репутация: нет Всего: нет |
Допустим я составил программу по открытию файла txt.
Но мне нужно пробежаться по всем строкам через регулярные выражения и проверить, не ошибся ли я в правильности команд и переменных. Как организовать построчную проверку? Вначале я думаю нужно /^var/ А дальше? Вот пример - извлечение чисел из введённой строки.
Это сообщение отредактировал(а) Poseidon - 6.5.2014, 11:40 |
||||
|
|||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Модератор: пользуйтесь кнопкой КОД!!!!!!!!!!!!!!!!!!!
Добавлено через 20 секунд Отредактируй своё сообщение. Добавлено через 42 секунды читать до просветления http://forum.vingrad.ru/forum/topic-353769.html |
|||
|
||||
Роман2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 23.6.2011 Репутация: нет Всего: нет |
Как организовать построчную проверку?
Вначале я написал /^var/ А дальше? у меня не получается CASE и цикл в нормальной форме |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Самый простой способ - при помощи TStringList. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Роман2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 23.6.2011 Репутация: нет Всего: нет |
Или подскажите, где найти пример и разъяснение, как это сделать...
У меня не получается что-то. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Нисходящий парсер, не регулярки
-------------------- Обижено школьников: 8 |
|||
|
||||
Роман2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 23.6.2011 Репутация: нет Всего: нет |
Как нисходящий парсер мне поможет?
Ну, может быть, есть у кого-нибудь идеи? |
|||
|
||||
Poseidon |
|
||||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Какие идеи ты ждешь? Готовый код? Тебе тут подсказывают как могут, пора и свою голову включать. Начни с того, что справильно сформулируй вопрос. Потому как по фразам
Это сообщение отредактировал(а) Poseidon - 7.5.2014, 13:23 -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
||||
|
|||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
сначала разбиваешь входной текст на лексемы, потом парсишь его сверху вниз. оригинальный паскаль парсился так, современные диалекты чуть посложнее
Добавлено через 11 минут и 16 секунд
-------------------- Обижено школьников: 8 |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Case вообще много где может быть в коде, но только каким он боком вообще тут упомянут
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Роман2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 23.6.2011 Репутация: нет Всего: нет |
Я написал, что мне нужно Проанализировать переменные при помощи регулярных выражений и выдать результат проверки о корректности, синтаксической ошибке или дублировании имени. (На вход программы подается текстовый файл содержащий только описания переменных на Паскале. )
Затем я написал - что я пробовал многое (/^var/ , пробовал CASE, пробовал цикл и так далее , но у меня не получилось...) |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Это сообщение отредактировал(а) bems - 8.5.2014, 07:49 -------------------- Обижено школьников: 8 |
|||
|
||||
Роман2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 23.6.2011 Репутация: нет Всего: нет |
я имел ввиду цикл - как проверять несколько строк?
|
|||
|
||||
bems |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
в паскале конец строки это просто разделитель вроде пробела (кроме случаев когда он встречается в однострочном комментарии и внутри строкового литерала). например
-------------------- Обижено школьников: 8 |
||||
|
|||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |