![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по ф-ции LockFile [D7, 95/98]
T.V © (2007-03-14 13:51:00)Доброго времени суток! Пытаюсь заблокировать текстовый файл начиная с 3-го байта и до конца
файла. Почему Блокнот может прочитать весь файл а не первые 2 байта?
Правильно ли я понимаю, что если указать смещение от которого происходит блокировка файла,
то байты ДО этого смещения могут быть доступны для чтения, а остальные будут не видны?
Вот код
var
hTxtFile,fsz: Integer;
procedure TForm1.Button2Click(Sender: TObject);
begin
hTxtFile := FileOpen(ExtractFilePath(Application.ExeName) + 'Text.txt',
fmOpenRead or fmShareDenyNone);
if hTxtFile <> -1 then
begin
fsz := GetFileSize(hTxtFile,nil);
if not LockFile(hTxtFile,3,0,fsz - 2,0) then
begin
FileClose(hTxtFile);
ShowMessage(SysErrorMessage(GetLastError));
end;
end else
ShowMessage(SysErrorMessage(GetLastError));
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if hTxtFile <> -1 then FileClose(hTxtFile);
end;
Сергей М. (2007-03-14 15:15:00) [1]
> Чего-то я не понимаю...
Блокнот копируеторигинал во временныйфайл и открывает для просмотра/редактирования именно временныйфайл.
А этому ты никак не препятствуешь, судя по mShareDenyNone
T.V (2007-03-14 14:40:00) [2]> А он и не заблокирован)
из-за fmShareDenyNone? Тогда в чем смысл LockFile, если я могу открыть файл в режиме fmShareExclusive и запретить доступ другим программам к этому файлу? Чего-то я не понимаю...
Сергей М. (2007-03-14 14:26:00) [3]
> если файл заблокирован?
А он и не заблокирован)
T.V (2007-03-14 14:22:00) [4]> Сергей М. © (14.03.07 14:17) [1]
А что же он тогда читает, если файл заблокирован?
Сергей М. (2007-03-14 14:17:00) [5]
> Почему Блокнот может прочитать весь файл а не первые 2 байта?
А с чего ты взял, что Блокнот читает оригинал?