Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Как отменить сообщения компилятора?   Найти похожие ветки 

 
Сергей   (2012-02-24 18:47) [0]

Иногда в функцию передается строка "Да", "Нет" и тп. Естественно функция 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;



 
AV ©   (2012-02-24 19:06) [1]

TryStrToInt


 
Ega23 ©   (2012-02-24 19:41) [2]

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


 
Dimka Maslov ©   (2012-02-24 20:05) [3]

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


 
Ega23 ©   (2012-02-24 20:19) [4]


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


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


 
Dimka Maslov ©   (2012-02-24 21:03) [5]

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


 
Ega23 ©   (2012-02-25 03:07) [6]


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


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


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

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


 
Inovet ©   (2012-02-25 09:53) [8]

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

result := OneCountInt<>TwoCountInt;


 
Inovet ©   (2012-02-25 09:55) [9]

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

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


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

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

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


 
Dimka Maslov ©   (2012-02-25 10:41) [11]


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


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


 
Inovet ©   (2012-02-25 10:48) [12]

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

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



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
15-1328646602
Юрий
2012-02-08 00:30
2013.03.22
С днем рождения ! 8 февраля 2012 среда


1-1300622372
Gu
2011-03-20 14:59
2013.03.22
Ресурсы x64 Dll


2-1337351793
ply
2012-05-18 18:36
2013.03.22
Потоки - проверка на существование


15-1332534602
Юрий
2012-03-24 00:30
2013.03.22
С днем рождения ! 24 марта 2012 суббота


15-1338356867
AV
2012-05-30 09:47
2013.03.22
Наглядно изобразить ход работы графиком