Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по ф-ции 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 байта?


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


Наверх

Титульная страница Поиск, карта сайта Написать письмо