На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Win Api / Читаем из файла, открытого другим приложением. Сделать домашней страницей Добавить в избранное Написать писмо

Читаем из файла, открытого другим приложением.


Совместимость: Delphi все версии

Даже если файл открыт с низкими привелегиями (используя ReadOnly, ShareReadWrite) , иногда открытие уже открытого файла может приводить к ошибкам, особенно, если это файл интенсивно используется другим приложением. Самый простой способ решить эту проблемму - это использовать MemoryStream вместо непосредственного доступа к файлу:

var Memory : TMemoryStream;
begin
 Memory := TMemoryStream.Create;
 try
   Memory.LoadFromFile('busyfile.dat'); // это он!!
   ..
   Memory.Read(...); // Вы можете использовать методы чтения как у файлов
   Memory.Seek(...);
   FileSize := Memory.Size;
   ..
 finally
   Memory.Free;
 end;
end;

Данный способ никогда не открывает файл, а заместо этого создаёт копию его в памяти. Конечно Вы можете и записать в поток (Stream) в Памяти(Memory), но изменения не будут записаны на диск до тех пор, пока Вы не запишете их в файл (командой SaveToFile).

Автор: Juan Antonio Navarro Perez (tres1416@email.com)
Источник: http://www.sources.ru/delphi/

Copyright ©   "Мастера DELPHI"   E-mail:   delphi@mastak.com  http://www.delphimaster.ru
Источник получения информации: http://www.delphimaster.ru
Hosted by uCoz