![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Файл занят другим процессом
man © (2008-06-16 15:04:00)Программе время от времени нужно читать данные из файла. При этом иногда выдается ошибка: "Процесс не может получить доступ к файлу, так как он занят другим процессом". В других программах этот файл не открыт. Я подозреваю, что файл может блокировать антивирус. Что мне сделать, чтобы избежать этой ошибки?
Поросенок Винни-Пух (2008-06-16 18:04:00) [1]В других программах этот файл не открыт
остается своя собственная программа. она и виновата. она открыла.
Поросенок Винни-Пух (2008-06-16 17:50:00) [2]в общем так.
файл твой занят и это правда.
и на этом все.
ciborg (2008-06-16 17:47:00) [3]Так я же сначала читаю из файла
vStream := TFileStream.Create(FileName, fmOpenRead);
vList := TStringList.Create;
try
vList.LoadFromStream(vStream);
vList.Sorted := False;
for i := vStartDict + 1 to vEndDict - 1 do
begin
...
Add(vWord);
end;
finally
vStream.Free;
vList.Free;
end;
изменяю данные, а уж потом записываю. Просто я посмотрел, что ошибка возникает при записи вот и выложил этот код.
Поросенок Винни-Пух (2008-06-16 17:41:00) [4]и что ты собрался читать из файла при таком раскладе:
vStream := TFileStream.Create(FileName, fmCreate);
ciborg (2008-06-16 17:39:00) [5]
> автор парит мозг окружающим.
Может и парю, но только по незнанию и в первую очередь себе.
Поросенок Винни-Пух (2008-06-16 17:22:00) [6]автор парит мозг окружающим.
clickmaker (2008-06-16 17:22:00) [7]> [25] ciborg (16.06.08 17:14)
значит, параллельно его пытается открыть либо второй экземпляр программы (либо она же в другом потоке), либо он открыт кем-то еще
чудес здесь не бывает
Поросенок Винни-Пух (2008-06-16 17:16:00) [8]vStream := TFileStream.Create(FileName, fmCreate);
и это для чтения время от времени некоторых данных?
Поросенок Винни-Пух (2008-06-16 17:14:00) [9]а ты чего хотел?
волшебства?
ciborg (2008-06-16 17:14:00) [10]
> Поросенок Винни-Пух ©
Какая разница, все равно сообщение выдается.
Поросенок Винни-Пух (2008-06-16 17:11:00) [11]try
vStream := TFileStream.Create(FileName, fmCreate);
......
except
on E:Exception do ShowMEssage('ой, мама!'#13#10 + E.Message)
end
ciborg (2008-06-16 17:10:00) [12]
> Milk (16.06.08 17:05) [21]
> Автор пока не ответил на главный вопрос:
> > clickmaker © (16.06.08 15:21) [5]
>
> > Что за файл, что и зачем из него читать, почему его может
>
> > открыть кто-то еще?..
> Иначе сложно о чем-то предполагать
Это текстовый файл, в котором я храню разную справочную информацию.
Я ошибся, я открываю его не для чтения, а для записи
vStream := TFileStream.Create(FileName, fmCreate);
vList := TStringList.Create;
try
for i := 0 to Count - 1 do
begin
...
vList.Add(vStr);
end;
vList.SaveToStream(vStream);
finally
vStream.Free;
vList.Free;
end;
Riply (2008-06-16 17:08:00) [13]> [20] Поросенок Винни-Пух © (16.06.08 17:00)
> .... и делаем это только когда программа запущена не дома
Ну почему же ? Один из многих вариантов реализации:
дома мы нажимаем кнопки программы в "правильной последовательности",
а не дома в "неправильной" :)
Milk (2008-06-16 17:05:00) [14]Автор пока не ответил на главный вопрос:
> clickmaker © (16.06.08 15:21) [5]
> Что за файл, что и зачем из него читать, почему его может
> открыть кто-то еще?..
Иначе сложно о чем-то предполагать
Поросенок Винни-Пух (2008-06-16 17:00:00) [15].... и делаем это только когда программа запущена не дома
Riply (2008-06-16 16:56:00) [16]> [18] Anatoly Podgoretsky © (16.06.08 16:45)
> Как открываешь, есть подозрение, что неправильно.
Исходя из фразы автора: "Программе время от времени нужно читать данные из файла"
добавлю, что "меня терзают смутные сомнения" что мы не закрываем за собой Handl`ы :)
Anatoly Podgoretsky (2008-06-16 16:45:00) [17]Как открываешь, есть подозрение, что неправильно.
Плохиш (2008-06-16 16:44:00) [18]
> man (16.06.08 15:04)
> Программе время от времени нужно читать данные из файла.
Открывай файл не ексключиво и только для чтения.
Поросенок Винни-Пух (2008-06-16 15:59:00) [19]разумеется.
ciborg (2008-06-16 15:59:00) [20]В каком случае антивирускик может заблокировать файл?