Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Памагите разобраться в ошибке! [D7, XP]


Страницы:   1 2

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+} поставь...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо