Командная строка не передает символ "^" ?[Решено]

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Командная строка не передает символ "^" ?[Решено]

Сообщение Topotun » 09.04.2011 10:02:46

Пишу кальлулятор командной строки. Столкнулся со следующей проблемой: командная строка вместо символа возведения в степень "^" возвращает программе символ с кодом 0. Если задавать строку в программе присваиванием все нормально работает. Параметр передается прогрграмме с помощью ParamStr.
Подскажите, пожалуйста, с чем это может быть связанно, и как с этим бороться. Google не помог.
Последний раз редактировалось Topotun 10.04.2011 16:17:31, всего редактировалось 1 раз.
Topotun
незнакомец
 
Сообщения: 5
Зарегистрирован: 09.04.2011 09:40:59

Re: Командная строка не передает символ "^" ?

Сообщение Topotun » 09.04.2011 10:34:34

В принципе понятно отчего такая петрушка. Так "\^" не работает, а вот так "^^" все нормально. Остается вопрос как сделать чтоб можно было задавать строку в нормальном виде? Использовать другие символы не хочу, "^" традиционно используется как оператор возведения в степень. Хотелось бы чтоб пользователь мог вводить строку в привычном виде.
Есть ли такая возможность?
Topotun
незнакомец
 
Сообщения: 5
Зарегистрирован: 09.04.2011 09:40:59

Re: Командная строка не передает символ "^" ?

Сообщение Odyssey » 09.04.2011 12:53:05

Может быть, стоит попробовать вводить всё выражение в кавычках. Как один параметр, типа "4^2 + 2^5", а уже в программе разбирать этот параметр на составные части.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Командная строка не передает символ "^" ?

Сообщение Topotun » 09.04.2011 13:38:19

Да, при вводе выражения в кавычках прога работает как надо. Спасибо. Но все же хотелось чтоб можно было вводить без кавычек. Например:
Calc 3^2*5
В таком случае программа получает 32*5, символ "^" просто выкидывется из строки. Что с этим делать ума не приложу.
Topotun
незнакомец
 
Сообщения: 5
Зарегистрирован: 09.04.2011 09:40:59

Re: Командная строка не передает символ "^" ?

Сообщение stikriz » 09.04.2011 14:27:28

- Доктор, когда я делаю вот так... Ой! Да, то мне больно. Что делать?
- Не делайте больше так никогда, и все пройдет.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Командная строка не передает символ "^" ?

Сообщение Rakshas » 10.04.2011 00:30:51

ОС --- Windows? или *nix?
Если *nix, то КС должна передавать символ "^" (см. калькуляторы apcalc и wcalc). Если MSW, то ХЗ.
Rakshas
новенький
 
Сообщения: 12
Зарегистрирован: 12.07.2009 23:53:18

Re: Командная строка не передает символ "^" ?

Сообщение Topotun » 10.04.2011 10:34:12

Windows. Видимо придется либо вводить другой символ для возведения в степень, либо пользоваться кавычками. :(
Topotun
незнакомец
 
Сообщения: 5
Зарегистрирован: 09.04.2011 09:40:59

Re: Командная строка не передает символ "^" ?

Сообщение Odyssey » 10.04.2011 11:23:12

Ещё, как вариант, можно сделать интерактивный режим калькулятора, по аналогии с интерактивной консолью Python/Ruby. Тогда программа будет запускаться без параметров, а выражение будет вводится уже после запуска, в консоль (т.е. в stdin) и читаться с помощью ReadLn. С stdin не должно быть таких ограничений на спецсимволы, как с параметрами командной строки.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Командная строка не передает символ "^" ?

Сообщение Topotun » 10.04.2011 16:16:22

Вообщем решил построить для программы интерфейс. Это будет хорошей практикой. Спасибо всем отписавшимся за ответы.
Topotun
незнакомец
 
Сообщения: 5
Зарегистрирован: 09.04.2011 09:40:59


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

Рейтинг@Mail.ru
cron