Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Асинхронное чтение данных из файла
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - Система
slavon-x86
Пишу HTTP сервер и столкнулся со следующей проблемой:
Получается что к примеру User1 загружает файл 1.rar и пока он не загрузит этот файл, то User2 не сможет его загрузить.

AssignFile(f);
....
CloseFile(f);



Сразу в голову приходят 2 способа:
1. Загрузить файлы полностью в оперативу, однако если будут многообьёмные файлы, то оперативы не хватит
2. Читать по кускам, однако этот способ мне неособо нравиться

Repeat 
AssignFile(f);
....
читаем кусок файла
....
CloseFile(f);
.....
отправляем считанный кусок
Until


Или может есть ещё какие-нибудь способы ?
sax_ol
Вам наверное надо поковырять еще FileMode.
Да и откуда такой метод - AssignFile? До Д7 2 параметра, дальше не в курсе.
slavon-x86
f := TFileStream.Create(Request.Line.Path, fmOpenRead);

Так не работает...
Когда он грузиться с одного потока, то второму он не доступен.
slavon-x86
Ура нашёл ! fmShareDenyNone - параметр, не блокирующий доступ к файлу.
 f := TFileStream.Create('Load' + Request.Line.Path,
                              fmOpenRead + fmShareDenyNone);
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.