Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Проверка на денежный тип


Автор: Voldemar2004 1.5.2010, 17:31
Не хочется изобретать велосипед smile Вопрос такой: есть ли в С++ проверка на денежный тип: -12567.56, 4354446.0, 74567.99

Требуется сделать проверку, чтобы пользователь не мог ввести число типа: "=4234.03", "324.005345", "-5345.4е4545"

Автор: mes 2.5.2010, 01:38
Цитата(Voldemar2004 @  1.5.2010,  16:31 Найти цитируемый пост)
есть ли в С++ проверка на денежный тип:

в самом С++ нету.. ищете подходящую библиотеку..

Автор: toxx 2.5.2010, 02:06
Voldemar2004
может быть чем-то поможет, но у Страуструпа в книге "Язык программирования С++" есть в приложениях глава, как раз про деньги.
надеюсь чем-то вам поможет Приложение Г. Локализация 4.3

Автор: borisbn 2.5.2010, 08:01
Если нужно проверять правильность при вводе, т.е. не давать ввести неправильно, то стоит указать графическую библиотеку (MFC, VCL, Qt и т.п.). В компонентах этих библиотек есть возможность задать маску для проверки, чтобы не делать её вручную. Если же речь идёт о проверке после ввода, то проще ввести данные в строку, а затем нехитрыми операциями проверить на правильность

Автор: Voldemar2004 2.5.2010, 10:35
Цитата(borisbn @  2.5.2010,  09:01 Найти цитируемый пост)
стоит указать графическую библиотеку (MFC, VCL, Qt и т.п.)


У меня VCL.

Цитата(borisbn @  2.5.2010,  09:01 Найти цитируемый пост)
Если нужно проверять правильность при вводе

Нужно проверять именно при вводе.

Автор: borisbn 2.5.2010, 12:25
В VCL, если не ошибаюсь, есть компонент TMaskEdit, в котором можно задать маску типа #.##

Автор: Voldemar2004 2.5.2010, 18:02
Цитата(borisbn @  2.5.2010,  13:25 Найти цитируемый пост)
В VCL, если не ошибаюсь, есть компонент TMaskEdit, в котором можно задать маску типа #.##


Дело в том, что я использую объект TDBEdit - в нём отображаются данные, выбранные из БД, вот именно в нём пользователь может выбрать неверное значение. Использовать теперь ещё и TMaskEdit  smile 

А можно использовать конструкцию 
Код

try{} catch() {}
 в блоке, где происходит сохранение введённых данных в TDBEdit !

Типа:

Код


try{
                Query1->Close();
                Query1->SQL->Text = SQL_QUERY.c_str();
                Query1->Active = true;
                Query1->SQL->Clear();
                Query1->SQL->Add( SQL_QUERY.c_str() );
                Query1->ExecSQL();
}
catch(...)
{
Application->MessageBox("...");
}


Автор: azesmcar 2.5.2010, 18:37
Цитата(Voldemar2004 @  2.5.2010,  18:02 Найти цитируемый пост)
Дело в том, что я использую объект TDBEdit - в нём отображаются данные, выбранные из БД, вот именно в нём пользователь может выбрать неверное значение. Использовать теперь ещё и TMaskEdit  smile 

На компоненте TDBEdit должна быть возможность установки маски, проверить не могу, но я почти что в этом уверен.

Автор: mes 2.5.2010, 21:49
Цитата(Voldemar2004 @  2.5.2010,  17:02 Найти цитируемый пост)
TDBEdit 

http://www.intbook.info/delphi/Glava15/Index8.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)