Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.02.2008, 21:53
Gad99 Gad99 вне форума
Новичок
 
Регистрация: 21.02.2008
Адрес: мурманск
Сообщения: 72
Репутация: 10
По умолчанию Непонятная ошибка I/O error 183

Код:
procedure TForm1.N5Click(Sender: TObject);
var
  searchResult : TSearchRec;
begin
  SetCurrentDir(CurDir+'\data');
  if FindFirst('*.tms', faAnyFile, searchResult) = 0 then
  begin
    repeat
      AssignFile(Anketa1,searchResult.Name);
      {$IOChecks off}
      Reset(Anketa1);
      Read(Anketa1,Anketa);
      CloseFile(Anketa1);
      {$IOChecks on}
      Load1.ListBox1.Items.Add(Anketa.FIO[1]+' '+Anketa.FIO[2]);
    until FindNext(searchResult) <> 0;
  Load1.Visible := True;
  FindClose(searchResult);
  End;
end;

В данном представлении все работает абсолютно нормально но если включить проверку ошибок то вылазит I/O error 183 при выполнении Reset, Read или Close операторов

Последний раз редактировалось Gad99, 27.02.2008 в 21:57.
Ответить с цитированием
  #2  
Старый 28.02.2008, 13:24
Аватар для moo2k
moo2k moo2k вне форума
Активный
 
Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 321
Репутация: 35
По умолчанию

Если мне не изменяет файл, то ошибка "183" - означает ошибку при создании файла. Ты не объявил "Anketa1" в разделе var, как файл. Вот и прога не может создать файл и ты не можешь выполнить операции с файлом - Reset, Read или Close.
__________________
Программирование - это искусство и наш смысл жизни.

Последний раз редактировалось moo2k, 28.02.2008 в 13:28.
Ответить с цитированием
  #3  
Старый 28.02.2008, 14:02
Gad99 Gad99 вне форума
Новичок
 
Регистрация: 21.02.2008
Адрес: мурманск
Сообщения: 72
Репутация: 10
Восклицание

1) Переменная объявлена как глобальная
2) Неужели если бы переменная не была объявлена вообще то с отключенной проверкой ошибок все бы работало как часы ?
Ответить с цитированием
  #4  
Старый 28.02.2008, 17:52
Аватар для mav_c
mav_c mav_c вне форума
Активный
 
Регистрация: 26.03.2007
Адрес: Москва
Сообщения: 287
Репутация: 30
По умолчанию

Цитата:
Сообщение от moo2k
Если мне не изменяет файл, то ошибка "183" - означает ошибку при создании файла. Ты не объявил "Anketa1" в разделе var, как файл. Вот и прога не может создать файл и ты не можешь выполнить операции с файлом - Reset, Read или Close.

-))))))
__________________
---------------------------------------------
Программирование - не профессия, а стиль жизни
Ответить с цитированием
  #5  
Старый 29.02.2008, 05:18
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Приведен абсолютно работоспособный код. Т.к. файлова переменная глобальная, то существует отличная от нуля вероятность, что в на момент выполнения этого кода она уже связана с файлом и файл открыт. Вообще для подобных операций глобальные переменные использовать не следует.
Ответить с цитированием
  #6  
Старый 29.02.2008, 20:01
Gad99 Gad99 вне форума
Новичок
 
Регистрация: 21.02.2008
Адрес: мурманск
Сообщения: 72
Репутация: 10
По умолчанию

Дык пробовал объявлять локальную файловую переменную а толку ноль, компилятор все равно ругается
Ответить с цитированием
  #7  
Старый 01.03.2008, 08:52
voron_paa voron_paa вне форума
Прохожий
 
Регистрация: 26.01.2008
Сообщения: 49
Репутация: 10
По умолчанию

Код:
  SetCurrentDir(CurDir+'\data\');

Вот так поставь... тут путь не правильный...
И будет тебе счастье...
Ответить с цитированием
  #8  
Старый 01.03.2008, 09:30
Gad99 Gad99 вне форума
Новичок
 
Регистрация: 21.02.2008
Адрес: мурманск
Сообщения: 72
Репутация: 10
Печаль

Нифига подобного все равно вылазит ошибка.

Ну дак что больше нет вариантов ???

Последний раз редактировалось Gad99, 02.03.2008 в 19:39.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:05.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025