Макро Анализатор для OpenCascade |
Здравствуйте, гость ( Вход | Регистрация )
Макро Анализатор для OpenCascade |
JuryS1806 |
11.11.2009, 18:17
Сообщение
#1
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
Так вот, уже год я занимаюсь написанием программы для рисования параметрических объектов. Сейчас активно создаю конзоль, которая будет анализировать команды.
http://depositfiles.com/files/9jq412vcg Вот что получилось на данный момент. Если у кого есть свободное время, можем объединить силы. Сейчас все акшоны и события переделываю под собственную консоль. такой командный интерпретатор получается. И работает здорово. К тому же я делаю команды не только на буржуйском языке, а также на отечественном, к примеру для того чтобы создать новый документ можно через меню Файл, Новый; или Ctrl+N; или ввести команду new; или ввести команду новый. Но самое важное теперь то, что эти команды и при использовании меню проходят через макроанализатор! Думаю еще через годик программа будет бомбой, по сравнению с FreeCad и QCad тем более Хочу спросить как можно на Qt например реализовать такую вещь: ввожу в QLineEdit строку содержания: линия 0 0 0 100 200 300 или на буржуйском языке line 0 0 0 100 200 300 Так вот, как можно анализировать такую команду, чтобы на выходе из QString было: QString Name = line int art1 = 0 int art2 = 0 int art3 = 0 int art4 = 100 int art5 = 200 int art6 = 300 Я понимаю что вопрос делетантский, но прошу помочь. К тому же думаю что не совсем актуально использовать сейчас goto. И путать исходный код макроанализатора. Спасибо за помощь. |
|
|
molchanoviv |
11.11.2009, 19:37
Сообщение
#2
|
Старейший участник Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: 5 |
с помощью QRegExp раздели строку. Ну или с помощью QString::split и первый элемент QStringList сделай Name а последующие art... Первый вариант предпочтительнее т.к. он отсеет неправильные строки, а во втором варианте придется еще и проверять.
Сообщение отредактировал molchanoviv - 11.11.2009, 19:40 |
|
|
JuryS1806 |
11.11.2009, 21:44
Сообщение
#3
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
А я даже не думал что какие-то готовые классы для этого есть ! Я тут уже начал описывать в матрицу все символы русские, английские и цифры с пробелами !
Что ж, буду пробовать ! Если еще кто пожелает помочь в поисках буду признателен. И еще однозначно это будет круто по сравнению с использованием каких-нибудь python консолей, будет быстродейственно, с возможностью записи макросов, их загрузки, и т.д. |
|
|
JuryS1806 |
14.11.2009, 23:44
Сообщение
#4
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
ВСЕМ ДОБРОГО ВРЕМЕНИ СУТОК ! вот что получилось у меня с анализатором команд, может кому пригодится. два дня тестировал, работает как часы.
Может быть у кого будут мысли по оптимизации такого кода. Он конечно колхозный, но очень четко работает ! Раскрывающийся текст
Теперь можно вводить команды: линия 1231 112 121 // то что будет в пояснении игнорируется line 123,123,123 // пробелы лишние стираются LiNe 120 123 124 // исправляется регистр букв ЛиниЯ 1231 1231 1231 // различие запятых и полностью рабочий русский язык ввода команд ВООБЩЕМ, мне лично нравится, буду рад критике Сообщение отредактировал Litkevich Yuriy - 15.11.2009, 7:15 |
|
|
Litkevich Yuriy |
15.11.2009, 7:16
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
JuryS1806, смотри тему Справка по кнопкам и тэгам форума
|
|
|
Kagami |
15.11.2009, 9:47
Сообщение
#6
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
Ужас Слабо было обработку аргументов завернуть в цикл, а сами аргументы - в массив?
|
|
|
JuryS1806 |
16.11.2009, 0:01
Сообщение
#7
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
и вправду! буду признателен если поможете. Я не силен в программировании, зато знаю чего хочу и как это будет выглядеть.
Я вообще считаю, что командная консоль должна быть в любом приложении. Например, в том же GIMP'e или Photoshop'e не всегда легко указать конкретную точку или область с мышки. Другое дело с консоли ввести команду с аргументами. Я не думаю, что программа должна работать только в текстовом режиме, НО и таковой должен быть. Я уже перестроил всю программму под свой макроанализатор. Любые события, слоты и акшоны работают через него, потому я и не хотел всяких неоднозначных выражений. все до безобразия просто. Заранее благодарен за помощь. |
|
|
JuryS1806 |
16.11.2009, 0:53
Сообщение
#8
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
|
|
|
JuryS1806 |
16.11.2009, 2:59
Сообщение
#9
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
Вот что получилось с использованием массивов ! Выкладываю свой MacroAnalize.cpp
MacroAnalize
Причина редактирования: плохо справку прочитал ;)
|
|
|
vanner |
16.11.2009, 11:23
Сообщение
#10
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 27.8.2009 Пользователь №: 1025 Спасибо сказали: 1 раз(а) Репутация: 0 |
Ты бы продумал архитектуру сначала, а потом писал. При таком подходе, как у тебя сейчас, добавление каждой новой команды будет превращаться в тяжелый труд.
|
|
|
Текстовая версия | Сейчас: 28.11.2024, 15:44 |