![]() |
|
|
![]()
|
|
| hente |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.3.2009 Где: Томск Репутация: нет Всего: нет |
здраствуйте вопрос в следующем:
нармально преобразовывает а если в строке например 2 точки то понятно вылетает!!! Где проверять на наличие ошибки мож кто знает.... Просто в исключение впехивать не охота, может есть какой метод или есцо что? За ранее благодарен... --------------------
долой быдло кодеров!!! |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
1.)StrToIntDef() 2.)TryStrToInt() 3.) собственно обработать исключение в try {} catch () |
|||
|
||||
| hente |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.3.2009 Где: Томск Репутация: нет Всего: нет |
Спасибо огромное
Попутно спрошу ребят у меня есть Едит как-нить можно до ввода определить что будет в нем храниться bool, int, unsigned int, long и так далее .... или только вручную (с помощью функций преобразования TryStrToXXX) проверять текст после ввода Есть какие нить идеи? --------------------
долой быдло кодеров!!! |
|||
|
||||
| Dmi3ev |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
нет конечно, можно вот так, например:
а можно юзать MaskEdit, а там задавать маску ввода... Добавлено через 35 секунд в примере можно будет в эдит вводить только числа... -------------------- |
||||
|
|||||
| hente |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.3.2009 Где: Томск Репутация: нет Всего: нет |
Да это то понятно просто мне придется все возможные типы вручную обрабатывать я думал может есть чо по быстрее
Блин чо так много базовых типов в С++ Спасибо большое..... Dmi3ev, mrbrooks, спасибо --------------------
долой быдло кодеров!!! |
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
как организовать ввод чисел уже разобрали (в примере double, как организовать ввод int легко догадаться, просто убрать все про DecimalSeparator)... ввод bool можно организовать с помощью ComboBox, а в нем либо да, либо нет выбирать... ввод строки тупо через эдит... короче, неясно, что тебе надо... -------------------- |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
ы? Столько же - как и везде. |
|||
|
||||
| hente |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.3.2009 Где: Томск Репутация: нет Всего: нет |
Dmi3ev, во-первых в вопросе сказано что есть только ЕДИТ и все.
во-вторых я искал более легкий способ обработки введенного числа чем в ручную, например на порядок код сократился с испоьзованием TryStrToXXX(). Просто у меня привычка не зависимо от опыта, постоянно искать новые пути решения, возможно найдется более оптимальный и быстрый способ... вот пример который вы дали:
16-строчек!!! вот мой код:
4-строчки Причем если обрабатывать все типы которые знает хотябы С++ (не Builder) то выигрышь по объему очевиден!!! mrbrooks, эт поеятно... что как и везде И все же всем спасибо за отзывчивость... --------------------
долой быдло кодеров!!! |
||||
|
|||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
hente, твой код короче, но при этом мой и твой решают разные задачи... Твой проверяет ввел ли юзер Целое (если бы я делал проверку на целое, а не на с плавающей точкой, то код был бы короче), а мой код не дает вводить ничего кроме числа... Разница большая, хз...
Дело твое, тебе виднее, что ты там мутишь... Может тебе и не нужна проверка... Но еще раз повторюсь, что задачи мы разные решаем... -------------------- |
|||
|
||||
| mrbrooks |
|
||||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
задачи то одинаковые - в твоем (классическом исполнение) - больше "защиты от дурака". но в какой то степени это не принципиально.
Это тебе так кажется. Компилер подставляет код функции TryStrToInt() который насчитывает далеко не четыре строчки. Так что визуально оно и короче, на самом генерируемый в итоге код возможно даже больше, чем у Dmi3ev. |
||||
|
|||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |