![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение самого себя [D7, 95/98, 2000, XP, 2003]
Ken9 © (2007-05-08 10:36:00)Здравствуйте, уважаемые Мастера. Мне надо сделать прогу-архиватор которая архивировала бы на подобие sfx-архивов. Я делаю следующее: делаю заранее прогу-распаковщик, затем специальной уже другой прогой архивирую файлы и добавляю их к копии распаковщика. Суть вопроса следующая: как прочитать распаковщику самого себя. Он(распаковщик) каждый раз выдаёт ошибку на операторе открытия, типо данный файл уже занят другим процессом. Что можно сделать в данной ситуации?
Плохиш (2007-05-08 15:11:00) [1]fmShareDenyNone
Плохиш (2007-05-08 15:09:00) [2]
> data:=TFileStream.Create(Application.ExeName,fmOpenRead or fmShareDenyWrite);
Ken9 (2007-05-08 14:24:00) [3]data:=TFileStream.Create(Application.ExeName,fmOpenRead);-на этом операторе вылетает с ошибкой.
//Открывать файл с нужными флагам
а я что делаю?)
//1. Так он же в памяти уже, зачем файл читать? Он уже прочитан, работай с //памятью.
//
//2. Хотя это уже и не нужно, но: При открытии файла, в виде параметра //функции, можно и нужно указать зачем он тебе нужен read или write или //readwrite. Если файл уже открыт для записи, то ОС не даст тебе в него //писать, но даст читать. ОС не дает писать в загруженные exe-файлы.
1. Чес. говоря не знаю как работать с памятью в данном случае. Можешь дать ссылку?
2. я вроде как и открываю только на чтение, а он гад выдаёт ошибку что файл занят др процессом......
ZeroDivide (2007-05-08 10:49:00) [4]
> Суть вопроса следующая: как прочитать распаковщику самого
> себя
Другой прогой архивирую файлы и добавляю их к копии распаковщика
1. Так он же в памяти уже, зачем файл читать? Он уже прочитан, работай с памятью.
2. Хотя это уже и не нужно, но: При открытии файла, в виде параметра функции, можно и нужно указать зачем он тебе нужен read или write или readwrite. Если файл уже открыт для записи, то ОС не даст тебе в него писать, но даст читать. ОС не дает писать в загруженные exe-файлы.
Reindeer Moss Eater (2007-05-08 10:44:00) [5]Открывать файл с нужными флагами