Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2012, 11:59   #1
_Ural_
Новичок
Джуниор
 
Регистрация: 18.10.2012
Сообщений: 3
По умолчанию Ошибка при чтении с сетевого диска(+)

Везде , кроме сетевых дисков все работает, опробованные варианты закоментированы {}
C сетевого диска вылетает ошибка 103. Или сразу (если не делать паузы-сейчас отключена) или при непосредственном выполнении Read или BlockRead...
Delphi7
Есть идеи?
Код:
var
  Form1: TForm1;
  Bin: array[0..8191] of Byte;  

procedure TForm1.LoadClick(Sender: TObject);
var
  f:file of byte;
  i:Integer;
begin
  if dlgOpen1.Execute then
  begin
    Form1.Refresh;
    AssignFile(f,dlgOpen1.FileName);
        {
    repeat
    i:=IOResult;
    until i=0;
       }
    {$I-}
    Reset(f);
    {$I+}
      {
    repeat
    i:=IOResult;
    until i=0;
     }

    if IOResult<>0 then
    begin
      Ind.Caption:=IntToStr(i);
      Application.MessageBox  (
                              PAnsiChar('Ошибка ввода-вывода' ),
                              'Внимание',
                              MB_ICONWARNING);
      exit;
    end;
    BlockRead(f,Bin,8191);
    {
    for i:=0 to 8191 do
    begin
      Read(f,Bin[i]);
    end;
    }
    CloseFile(f);
end;

Последний раз редактировалось _Ural_; 18.10.2012 в 12:10.
_Ural_ вне форума Ответить с цитированием
Старый 18.10.2012, 12:38   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

103 - файл закрыт.

Может, проблема в доступе к сетевому ресурсу?

Цитата:
Или сразу (если не делать паузы-сейчас отключена)
А если пауза включена - нормально открывает? Видимо, файл по сети открывается дольше, чем к нему начинает обращаться команда чтения.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 18.10.2012, 13:45   #3
_Ural_
Новичок
Джуниор
 
Регистрация: 18.10.2012
Сообщений: 3
По умолчанию

Да, малость тормознул, проблема действительно в правах доступа к диску.
При наличии прав на запись работает нормально.
Но при доступе только на чтение - ошибка 103
Я неправильно понимаю роль AssignFile? (связь переменной с файлом-для чего тут права на запись?)
Как это обойти?
_Ural_ вне форума Ответить с цитированием
Старый 18.10.2012, 14:37   #4
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,759
По умолчанию

Используй лучше файловый поток TFileStream с параметром fmOpenRead и не будет такой ошибки.
FaTaL вне форума Ответить с цитированием
Старый 18.10.2012, 14:42   #5
_Ural_
Новичок
Джуниор
 
Регистрация: 18.10.2012
Сообщений: 3
По умолчанию

Спасибо всем!!!
_Ural_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при чтении файла Стремящийся Общие вопросы по Java, Java SE, Kotlin 4 03.07.2012 16:50
Ошибка при чтении из файла alex_alpha Общие вопросы C/C++ 5 08.08.2010 20:28
ошибка при чтении файла ongleb Общие вопросы C/C++ 17 30.07.2009 13:48
ошибка при чтении файла Alik-Soldier Общие вопросы C/C++ 1 31.05.2009 20:44
Ошибка при чтении БД из файла!! sting БД в Delphi 4 14.12.2008 22:23