Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
ВнизВопрос по ф-ции 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c