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

Вниз

Доступ к файлам.   Найти похожие ветки 

 
Лана Розанова   (2003-04-19 11:36) [0]

Всем привет. С праздником большого субботника.
Как определить программно открыт ли файл MSOffice пользователем или нет?
СПАСИБО!!!


 
Palladin ©   (2003-04-19 11:49) [1]

попытатся его открыть


 
Лана Розанова   (2003-04-19 11:53) [2]

Мне надо заранее знать, что пользователь открыл нужный мне файл.
Т.к. мне надо будет обновить данные.


 
Palladin ©   (2003-04-19 12:17) [3]

попытаться открыть его, в режиме записи
если открылся успешно то не занят


 
Лана Розанова   (2003-04-19 13:41) [4]

>Palladin
Не поняла...в режиме записи


 
Snap ©   (2003-04-19 14:00) [5]

В Дельфи FileMode отвечает за режимы открытия файлов.


 
Snap ©   (2003-04-19 14:02) [6]

И вот какие значение может принимать
fmOpenRead = $0000;
fmOpenWrite = $0001;
fmOpenReadWrite = $0002;

fmShareCompat = $0000;
fmShareExclusive = $0010;
fmShareDenyWrite = $0020;
fmShareDenyRead = $0030;
fmShareDenyNone = $0040;


 
Лана Розанова   (2003-04-19 14:03) [7]

А попонятней напишите пожалуйста. Или примером. Не пойму.


 
Snap ©   (2003-04-19 14:25) [8]

var
f:file;
begin
assignfile(f,...);
filemode:=fmOpenRead;
{I-}
reset(f);
{$I+}
if ioresult=0 then
begin
closefile(f);
filemode:=fmOpenReadWrite;
{$I-}
reset(f);
{$I+}
if ioresult<>0 then (* значит файл открыт другим приложением *) else closefile(f);
end;
end;


 
Snap ©   (2003-04-19 14:28) [9]

в шестой строке надо написать {$I-} :)))


 
Лана Розанова   (2003-04-21 12:29) [10]

Набираю код:

procedure TForm1.FormActivate(Sender: TObject);
var
f:file;
vvv:boolean;
begin
vvv:=false;
assignfile(f,"c:\111.xls");
filemode:=fmOpenRead;
{I-}
reset(f);
{$I+}
if ioresult=0 then
begin
closefile(f);
filemode:=fmOpenReadWrite;
{$I-}
reset(f);
{$I+}
if ioresult<>0 then
vvv:=true //типа файл должен быть занят
else
closefile(f);
end;
end;


и ничего не получается когда я открываю файл или не открываю. Помогите плиз.
СПАСИБО!!!


 
Лана Розанова   (2003-04-21 13:03) [11]

Люди, помогите.....


 
Palladin ©   (2003-04-21 13:04) [12]

ioresult проверяют в рамках {$I-} {$I+}


 
Palladin ©   (2003-04-21 13:07) [13]


function _IsFileOpened(p_strFileName:string):Boolean;
var
f:file;
IORes:integer;
begin
assignfile(f,p_strFileName);
FileMode:=fmOpenWrite;
{$I-}
reset(f,1);
IORes:=IOResult;
{$I+}
result:=IORes<>0;
if not result then closefile(f);
end;



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

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

Наверх




Память: 0.49 MB
Время: 0.012 c
14-747
crash
2003-04-14 08:36
2003.05.01
отправить сообщение другим процессам


1-592
Евгений Барабашин
2003-04-17 18:38
2003.05.01
Как лучше организовать диалог для задания филтра по набору данных


14-700
Pentium
2003-04-08 18:21
2003.05.01
Internet!!!


14-685
Anonimus
2003-04-11 10:41
2003.05.01
Смена иконки


1-510
Morgan
2003-04-20 16:48
2003.05.01
QuickRep