Автор
|
Тема: Как определить, открыт ли файл или нет?
|
FisherMan |
опубликован 28-11-2001 13:43 MSK
Имеется куча открытых и не открытых файлов. Как определить, точнее написать функцию, при передаче которой файловой переменной, она будет возвращать, открыт ли файл или нет. Надо для критического завершения работы программы, т.е. чтоб все было корректно закрыто и удалено. Да, желательно, чтоб в функцию передавались файлы любого типа. Заранее спасибо за помощь!
|
7in
|
опубликован 28-11-2001 23:18 MSK
Ну, во-первых, при выходе все файлы закрываются автоматически (правда, если у тебя открыт тексовый файл для записи, то данные, которые остались в буфере, записаны не будут).А во-вторых, вот оно: 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
Кстати, возвращает TRUE (т.е, что файл закрыт) даже, если он не был открыт, или даже, если ему не было присвоено имя (Assign). |