![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отменить сообщения компилятора?
Сергей © (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