Как определить, открыт ли файл или нет?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.134] |
|
|
Как определить, открыт ли файл или нет?
|
Сообщ.
#1
,
|
|
|
|
Имеется куча открытых и не открытых файлов.
Как определить, точнее написать функцию, при передаче которой файловой переменной, она будет возвращать, открыт ли файл или нет. Надо для критического завершения работы программы, т.е. чтоб все было корректно закрыто и удалено. Да, желательно, чтоб в функцию передавались файлы любого типа. Заранее спасибо за помощь! |
|
Сообщ.
#2
,
|
|
|
|
Ну, во-первых, при выходе все файлы закрываются автоматически (правда, если у тебя открыт тексовый файл для записи, то данные, которые остались в буфере, записаны не будут).
А во-вторых, вот оно: 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; |
|
Сообщ.
#3
,
|
|
|
|
Кстати, возвращает TRUE (т.е, что файл закрыт) даже, если он не был открыт, или даже, если ему не было присвоено имя (Assign).
|