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

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

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

Ответить
Topotun
незнакомец
Сообщения: 5
Зарегистрирован: 09.04.2011 09:40:59

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

Сообщение Topotun »

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

Сообщение Topotun »

В принципе понятно отчего такая петрушка. Так "\^" не работает, а вот так "^^" все нормально. Остается вопрос как сделать чтоб можно было задавать строку в нормальном виде? Использовать другие символы не хочу, "^" традиционно используется как оператор возведения в степень. Хотелось бы чтоб пользователь мог вводить строку в привычном виде.
Есть ли такая возможность?
Odyssey
энтузиаст
Сообщения: 580
Зарегистрирован: 29.11.2007 16:32:24

Сообщение Odyssey »

Может быть, стоит попробовать вводить всё выражение в кавычках. Как один параметр, типа "4^2 + 2^5", а уже в программе разбирать этот параметр на составные части.
Topotun
незнакомец
Сообщения: 5
Зарегистрирован: 09.04.2011 09:40:59

Сообщение Topotun »

Да, при вводе выражения в кавычках прога работает как надо. Спасибо. Но все же хотелось чтоб можно было вводить без кавычек. Например:
Calc 3^2*5
В таком случае программа получает 32*5, символ "^" просто выкидывется из строки. Что с этим делать ума не приложу.
Аватара пользователя
stikriz
энтузиаст
Сообщения: 612
Зарегистрирован: 15.03.2006 08:37:47

Сообщение stikriz »

- Доктор, когда я делаю вот так... Ой! Да, то мне больно. Что делать?
- Не делайте больше так никогда, и все пройдет.
Rakshas
новенький
Сообщения: 12
Зарегистрирован: 12.07.2009 23:53:18

Сообщение Rakshas »

ОС --- Windows? или *nix?
Если *nix, то КС должна передавать символ "^" (см. калькуляторы apcalc и wcalc). Если MSW, то ХЗ.
Topotun
незнакомец
Сообщения: 5
Зарегистрирован: 09.04.2011 09:40:59

Сообщение Topotun »

Windows. Видимо придется либо вводить другой символ для возведения в степень, либо пользоваться кавычками. :(
Odyssey
энтузиаст
Сообщения: 580
Зарегистрирован: 29.11.2007 16:32:24

Сообщение Odyssey »

Ещё, как вариант, можно сделать интерактивный режим калькулятора, по аналогии с интерактивной консолью Python/Ruby. Тогда программа будет запускаться без параметров, а выражение будет вводится уже после запуска, в консоль (т.е. в stdin) и читаться с помощью ReadLn. С stdin не должно быть таких ограничений на спецсимволы, как с параметрами командной строки.
Topotun
незнакомец
Сообщения: 5
Зарегистрирован: 09.04.2011 09:40:59

Сообщение Topotun »

Вообщем решил построить для программы интерфейс. Это будет хорошей практикой. Спасибо всем отписавшимся за ответы.
Ответить