![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Народ, очень волнует такой вопрос, помогите кто сталкивался, есть программа, в ней туева куча преобразований типа strtofloat strtoint
если каким то макаром попадает не корректная строка для преобразования, программа выдает ошибку и полностью ступорится, вплоть до диспетчера задач. Это ппц, вот пример Код:
try
sGauge1.MaxValue:=abs(round(strtofloat(sEdit3.Text)));
except
on EConvertError do
begin
sGauge1.MaxValue:=1200;
end;или Код:
for I := 1 to sg.RowCount-1 do
begin
if sg.Cells[0,i]='' then Continue;
try
sumgr:=sumgr+strtofloat(sg.Cells[2,i]);
sumday:=sumday+strtofloat(sg.Cells[6,i]);
if (sg.Cells[9,i]<>'')and(sg.Cells[9,i]<>' ') then
gn:=gn+strtofloat(sg.Cells[9,i]);
if sg.Cells[8,i]<>'' then
sumxe:=sumxe+strtofloat(sg.Cells[8,i]);
belki1:=belki1+strtofloat(sg.Cells[3,i]);
jirki1:=jirki1+strtofloat(sg.Cells[4,i]);
uglevodi1:=uglevodi1+strtofloat(sg.Cells[5,i]);
except
on Exception : EConvertError do
ShowMessage(Exception.Message);
end;
end;Посоветуйте как быть, желательно чтобы не оборачивать каждое преобразование в эксепты, чтобы можно было что-то прописать в приложении чтобы оно не уходило в даун при ошибках а просто шло дальше Интересуюсь для своей программы http://hiki-soft.ru/ калькулятор калорий можно скачать поглядеть на нее Последний раз редактировалось hilaryon, 30.07.2014 в 12:18. |
|
#2
|
||||
|
||||
|
Есть StrToFloatDef.
|
|
#3
|
|||
|
|||
|
интересная функция, буду знать
но может у кого то есть еще идеи? strtofloatdef не всегда удобно [dcc32 Error] Unit1.pas(4343): E2250 There is no overloaded version of 'StrToFloatDef' that can be called with these arguments |
|
#4
|
|||
|
|||
|
есть еще вариант все проверять сперва на val
Код:
val(memo1.Lines[14],v,err);
if err=0 then
begin
form1.sEdit7.Text:= memo1.Lines[14];
limvod:=strtofloat( memo1.Lines[14]);
end else limvod:=1499;но это честно говоря ппц ( в программе таких преобразований просто море, есть способы как-то упростить задачу? в одной программе видел такое что на любую ошибку пишет "ошибка, ну и хрен с ней" и программа не зависает ниразу. |
|
#5
|
||||
|
||||
|
Цитата:
|
|
#6
|
|||
|
|||
|
Есть еще TryStrToInt & TryStrToFloat.
|