WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  Pascal
  Как определить, открыт ли файл или нет?

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Как определить, открыт ли файл или нет?
FisherMan опубликован 28-11-2001 13:43 MSK   Click Here to See the Profile for FisherMan   Click Here to Email FisherMan  
Имеется куча открытых и не открытых файлов.
Как определить, точнее написать функцию, при передаче которой файловой переменной, она будет возвращать, открыт ли файл или нет.
Надо для критического завершения работы программы, т.е. чтоб все было корректно закрыто и удалено. Да, желательно, чтоб в функцию передавались файлы любого типа. Заранее спасибо за помощь!
7in опубликован 28-11-2001 23:18 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
Ну, во-первых, при выходе все файлы закрываются автоматически (правда, если у тебя открыт тексовый файл для записи, то данные, которые остались в буфере, записаны не будут).

А во-вторых, вот оно:

Function IsClosed(var F): Boolean; assembler;
Asm
les di,F
mov al,1
cmp byte ptr es:[di+2],0B0h
jbe @Closed
dec ax
@Closed:
End;

7in опубликован 28-11-2001 23:20 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
Кстати, возвращает TRUE (т.е, что файл закрыт) даже, если он не был открыт, или даже, если ему не было присвоено имя (Assign).

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.