Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как отменить сообщения компилятора?


Сергей ©   (2012-02-24 18:47:00) 

Иногда в функцию передается строка 'Да', 'Нет' и тп. Естественно функция StrToInt выдет ошибку. Как отключить сообщения компилятора?

function TGlobParam.CompareNotTwoNumber (OneCount, TwoCount:String): boolean;
var
OneCountInt,TwoCountInt: Integer;
begin
 try
 result:=false;
 OneCountInt:=StrToInt(AnsiReplaceStr(OneCount,' ',''));
 TwoCountInt:=StrToInt(AnsiReplaceStr(TwoCount,' ',''));
 if OneCountInt<>TwoCountInt then result:=true;
 except
 end;
end;


Inovet   (2012-02-25 10:48:00) [1]

> [10] sniknik ©   (25.02.12 10:23)
> какой смысл преобразовывать, в общем.

Может там будет "Да", "Да". Ну или, как ты говоришь, "1", "+01".


Dimka Maslov   (2012-02-25 10:41:00) [2]


> Ega23 ©   (25.02.12 03:07) [6]


Cама Val есть надстройка над System._ValLong, которая написана на асме. Зачем тупо копипастить, когда уже всё написано и всё работает?


sniknik   (2012-02-25 10:23:00) [3]

function TGlobParam.CompareNotTwoNumber(const OneCount, TwoCount: string): boolean;
begin
 result:= Trim(OneCount) <> Trim(TwoCount);
end;

или у тебя бывают значения int в другой форме? (шестнадцатеричной/с ведущими нулями)
какой смысл преобразовывать, в общем.


Inovet   (2012-02-25 09:55:00) [4]

> [7] _Юрий   (25.02.12 09:50)
> Только надо не забыть это место

Просто ничего не надо отключать, тогда и не забудешь, иначе забудешь.


Inovet   (2012-02-25 09:53:00) [5]

> [0] Сергей   (24.02.12 18:47)
> if OneCountInt<>TwoCountInt then result:=true;

result := OneCountInt<>TwoCountInt;


_Юрий   (2012-02-25 09:50:00) [6]

предполагаю, что речь идет все таки о нотификации дебаггера. Если так, то
надо отключить галку "Notify on language exceptons" в настройках среды
(Tools-Options-Debugger Options), или внести класс исключения в список игнорируемых. Только надо не забыть это место, потому что потом придется включать обратно


Ega23   (2012-02-25 03:07:00) [7]


> TryStrToInt это... надстройка над Val! Не более того. Как
> и StrToInt.


Хм... В D7 - да, в D2010 мне казалось, что на асм заменили. Нифига, по-прежнему надстройка. Причём поцчему-то overload...


Dimka Maslov   (2012-02-24 21:03:00) [8]

TryStrToInt это... надстройка над Val! Не более того. Как и StrToInt.


Ega23   (2012-02-24 20:19:00) [9]


> при помощи старой доброй функции val.


TryStrToInt всё-же, ИМХО.


Dimka Maslov   (2012-02-24 20:05:00) [10]

Для начала нужно понять что такое компилятор, и чем ошибка компиляции отличается от ошибки времени исполнения (исключения). Потом разобаться с такими вещами как try..finally..except и структурированная обработка исключений. И, наконец, воспользоваться для преобразования строки в число при помощи старой доброй функции val.


Ega23   (2012-02-24 19:41:00) [11]

Result := AnsiUpperCase(Trim(OneCount)) =  AnsiUpperCase(Trim(TwoCount));


AV   (2012-02-24 19:06:00) [12]

TryStrToInt


Наверх

Титульная страница Поиск, карта сайта Написать письмо