Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Совместный доступ к файлам [D5, WinME]


Pastor ©   (2002-02-18 10:46:00) 

Уважаемые мастера! Подскажите как можно открыть файл, который уже используется другой программой, т.е. что-то похожее на импорт. Если конкретно, то нужно прочитать данные Log-файла WinGate в то время, когда прокси работает. Пытаюсь обычным Reset(filename) - не получается.


[NIKEL]   (2002-02-18 13:51:00) [1]

надо использовать 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;


тоесть создаёться копия файла в памяти, можно записать в поток и делать всё что нужно - но потом по любому надо будет сохранить его на диск (но если надо почитать только, то просто освобождаем память)


drpass   (2002-02-18 12:42:00) [2]

Перед тем, как использовать Reset с уже используемым файлом, нужно установить режим доступа "только чтение": FileMode:=2;


Наверх

Титульная страница Поиск, карта сайта Написать письмо