![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Памагите разобраться в ошибке! [D7, XP]
VitAngel © (2007-02-22 15:16:00)Вечер добрый! Вопрос такой: Дело в том, что у меня приложение работает нормально, а на чужом компе выдаёт ошибку "I\O Error XXXXX" (номер ошибки не помню). заметил только то, что когда прога при создании форма считывает с файла данные и вносит их на форму, из-за ошибки Edit'ы не запоняются. Подскажите что за ошибка
RASkov (2007-02-23 18:24:00) [1]> [27] Anatoly Podgoretsky © (23.02.07 17:44)
Так оно не для этого же:
Y:=0;
try
S := 'Оба на';
N:= X div Y;
S:=S+' на абО';
finally
ShowMessage(S);
end;
Что будет в S? и вариант без finally:
begin
Y:=0;
S := 'Оба на';
N:= X div Y;
S:=S+' на абО';
ShowMessage(S); // Здесь мы вообще пролетаем.
end;
Anatoly Podgoretsky (2007-02-23 17:44:00) [2]> Германн (23.02.2007 01:45:26) [26]
Да, ну?
Ну тогда попробуй
try
S := 'Оба на';
finally
ShowMessage(S);
end;
Вот она оба на
Германн (2007-02-23 01:45:00) [3]
> Anatoly Podgoretsky © (22.02.07 22:48) [24]
>
> > RASkov (22.02.2007 16:39:16) [16]
>
> C какой это стати блок try finally end является блоком исключительных
> ситуаций?
>
Анатолий. Вроде бы мы тут, на форуме, уже давно пришли к общему пониманию, что вопрос терминологии один из самых сложных, если не самый! Имхо, блок try finally end "является, таки, блоком исключительных ситуаций" поскольку предназначен для того, чтобы даже при возникновении исключения, выполнить определённую часть программного кода!
RASkov (2007-02-23 00:44:00) [4]> [24] Anatoly Podgoretsky © (22.02.07 22:48)
Ну а как его еще назвать - механизм обработки исключительных ситуаций (с) М.Кэнту
Delphi - это мое хобби, меня этому никто не учил, поэтому в терминах(названиях) могу путаться.... сорри.
Anatoly Podgoretsky (2007-02-22 22:48:00) [5]> RASkov (22.02.2007 16:39:16) [16]
C какой это стати блок try finally end является блоком исключительных ситуаций?
RASkov (2007-02-22 20:45:00) [6]> [22] Loginov Dmitry © (22.02.07 20:38)
Так пойдет.
Ну спасибо :) (если это мне было сказано) (:
Что-то автор вопроса куда-то пропал... наверное побег испытывать на чужом компьютере...
Loginov Dmitry (2007-02-22 20:38:00) [7]Так пойдет.
RASkov (2007-02-22 20:03:00) [8]> [20] Loginov Dmitry © (22.02.07 19:35)
Чё-та я загнался.. согласен, но помоему все равно как то некрасиво, и вот так получше должно быть
AssignFile(f, FileName);
try
Reset(f);
try
{ do something here }
finalli
CloseFile(f);
end;
except
{обрабатываем ошибку}
end;
Loginov Dmitry (2007-02-22 19:35:00) [9]> Иначе Reset как-то неловко поставлен...
Кроме Вас так никто не считает.
RASkov (2007-02-22 19:30:00) [10]> [18] Loginov Dmitry © (22.02.07 18:41)
> AssignFile(f, FileName);
> Reset(f);
> try
> { do something here }
> finally
> CloseFile(f);
> end;
Тогда уж так
AssignFile(f, FileName);
try
try
Reset(f);
{ do something here }
except
{обрабатываем ошибку}
end;
finally
CloseFile(f);
end;
Иначе Reset как-то неловко поставлен...
Loginov Dmitry (2007-02-22 18:41:00) [11]> И вот еще - обычно так делают:
> fName := ExtractFilePath(Application.ExeName)+'config.txt';
>
> try
> AssignFile(f, fName);
> Reset(f);
> .......
> finally
> CloseFile(f);
> end;
Вообще-то обычно так:
AssignFile(f, FileName);
Reset(f);
try
{ do something here }
finally
CloseFile(f);
end;
(c) F1
Desdechado (2007-02-22 16:59:00) [12]Прав доступа к файлу нет?
Или он R\O
RASkov (2007-02-22 16:39:00) [13]> /выода
*/вывода
используй блоки исключительных ситуаций(или как их там) try except end; try finally end;
RASkov (2007-02-22 16:36:00) [14]> [14] VitAngel (22.02.07 16:20)
А нафига ты их ставил? :)
Отключение/включение контроля ввода/выода... Посмотри на [10].
VitAngel (2007-02-22 16:20:00) [15]кстати, зачем вообще нужны
{$I-}
{$I+} ?
VitAngel (2007-02-22 16:19:00) [16]нее это я прогнал...теперь не выдаёт
VitAngel (2007-02-22 16:14:00) [17]Я щас убрал две строки:
{$I-}
{$I+}
И он выдал ошибку "I\O error 123"...
RASkov (2007-02-22 16:11:00) [18]> MessageBox
Ну конечно ж ShowMessage();
RASkov (2007-02-22 16:09:00) [19]И вот еще - обычно так делают:
fName := ExtractFilePath(Application.ExeName)+'config.txt';
try
AssignFile(f, fName);
Reset(f);
.......
finally
CloseFile(f);
end;
RASkov (2007-02-22 16:07:00) [20]> {$I-}
> Reset(f);
> {$I+}
Эти {$I-}.. {$I+} убери, или MessageBox('Opened'); до {$I+} поставь...