Форум: "Основная";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
ВнизИспользование try/exception Найти похожие ветки
← →
Галинка © (2004-07-01 11:47) [0]Всем доброго времени суток )).
Проблема такая...:
1) есть функция
function GetLinesPoints(InFile:string):TLines;
var
L,P:integer;
Stri:string;
TekLines:TLines;
InF:Text;
begin
AssignFile(InF,InFile);
Reset(InF);
L:=1;
while not EoF(InF) do
begin
P:=0;
SetLength(TekLines,L);
ReadLn(InF,Stri);
repeat
Inc(P);
SetLength(TekLines[L-1],P);
TekLines[L-1,P-1]:=GetPoint(Stri);
ReadLn(InF,Stri);
until Stri="";
Inc(L);
end;
if Odd(L) then ErrIndic(1);
TekLines:=LinePointsSort(TekLines);
Result:=TekLines;
end;
которая читает в массив пары координат, при помощи другой функции
function GetPoint(Arg:string):TPlPoint;
var
i:byte;
SubStr:string;
TekPoint:TPlPoint;
begin
DecimalSeparator:=".";
i:=0;
repeat
inc(i);
SubStr:=copy(Arg,i,1);
until SubStr=" ";
SubStr:=copy(Arg,1,i-1);
try
TekPoint.X:=StrToFloat(SubStr);
except
on EConvertError do
begin
ErrIndic(1);
Exit;
end;
end;
SubStr:=copy(Arg,i+1,Length(Arg)-i);
try
TekPoint.Y:=StrToFloat(SubStr);
except
on EConvertError do
begin
ErrIndic(1);
Exit;
end;
end;
Result:=TekPoint;
end;
2) Вызов производиться так
MyLines:=Raschet.GetLinesPoints(OpenDialog.FileName);
Внимание вопрос: КАК СДЕЛАТЬ ТАК, ЧТОБЫ НА ПОЯВЛЕНИЕ ОШИБКИ ОСУЩЕСТВЛЯЛСЯ ВЫХОД ИЗ ЭТОГО ВЫЗОВА...
← →
inic © (2004-07-01 11:52) [1]Внутри
except
on SomeException
после своих обработок написать "raise;"
← →
Гаврила © (2004-07-01 11:53) [2]в секции Except поставь raise вместо exit
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.034 c