Даже если файл открыт с низкими привелегиями (используя 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/
Алгоритм решения Японского кроссворда
Все большее распространение получают японские кроссворды. Вот и я как-то заразился. Недавно решил, чтобы комп сам ...
Print scalled
Можно ли печатать с изменением масштаба печати.
про Базы Данных и BDE
Вопрос таков, можно ли какнибудь работать с базой данных, кроме как посредствам BDE ?
Чистая правда о заработке в INTERNET. Часть 1.
Эта заметка не имеет непосредственного отношения к DELPHI, уж извините :) Но получив в очередной раз письмо с предложение за два клика заработать $5000 я не выдержал, душа просит высказаться! Я рассмотрю несколько вариантов заработка денег в internet с описанием, их плюсами и минусами. Сразу предупреждаю, это мое личное мнение, никак не претендую на глубину и всесторонность обзора.