Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.01;
Скачать: CL | DM;

Вниз

Вопрос по ф-ции LockFile   Найти похожие ветки 

 
T.V   (2007-03-14 13:51) [0]

Доброго времени суток! Пытаюсь заблокировать текстовый файл начиная с 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 14:17) [1]


> Почему Блокнот может прочитать весь файл а не первые 2 байта?


А с чего ты взял, что Блокнот читает оригинал ?


 
T.V   (2007-03-14 14:22) [2]

> Сергей М. ©   (14.03.07 14:17) [1]
А что же он тогда читает, если файл заблокирован?


 
Сергей М. ©   (2007-03-14 14:26) [3]


> если файл заблокирован?


А он и не заблокирован)


 
T.V   (2007-03-14 14:40) [4]

> А он и не заблокирован)

из-за fmShareDenyNone? Тогда в чем смысл LockFile, если я могу открыть файл в режиме fmShareExclusive и запретить доступ другим программам к этому файлу? Чего-то я не понимаю...


 
Сергей М. ©   (2007-03-14 15:15) [5]


> Чего-то я не понимаю...


Блокнот копирует оригинал во временный файл и открывает для просмотра/редактирования именно временный файл.
А этому ты никак не препятствуешь, судя по mShareDenyNone



Страницы: 1 вся ветка

Текущий архив: 2007.04.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
3-1168369928
Aspyrin
2007-01-09 22:12
2007.04.01
Создание запросов на вставку,апдейт инфы с помощью эл. ADOQuery


15-1173621847
прог-ист
2007-03-11 17:04
2007.04.01
кодировка


2-1173305867
ДжекиМайер
2007-03-08 01:17
2007.04.01
достучатся до свойств


15-1173445639
oldman
2007-03-09 16:07
2007.04.01
Как хорошая идея становиться кривой...


2-1173009718
Roman_S
2007-03-04 15:01
2007.04.01
Symbol FindData is specific to a platform!