Главная страница
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.089 c
1-1171046462
shr
2007-02-09 21:41
2007.04.01
есть ли мат. функции, работающие с Очень большими числами?


15-1173185073
alex_***
2007-03-06 15:44
2007.04.01
Кто-ть делал загрузочный USB flash из .iso?


2-1173656683
Ламер 2.Х
2007-03-12 02:44
2007.04.01
ProgressBar


2-1173796728
валидол
2007-03-13 17:38
2007.04.01
Позиция мыши


2-1173449425
DelphiLexx
2007-03-09 17:10
2007.04.01
Как создать глобальную переменную