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

Вниз

как проверить, что файл открыт   Найти похожие ветки 

 
>|<   (2011-02-21 12:25) [0]

var f:text

oncreate:
AssignFile(f, ...)

onclose, onexception:
if Assigned(f) then //<- не работает
CloseFile(f)

Вопрос: как получить указатель на открытый файл и удостовериться в том, что файл открыт?


 
KSergey ©   (2011-02-21 12:55) [1]

Логика кода должна быть устроена так, чтобы CloseFile(f) не вызывался, если AssignFile выполнился с ошибкой.

Если этого сделать сейчас нельзя - то либо отдельный флажок взводить булевый при успешном открытии файла, либо перед ClosaFile стасить  {$I-} и роверять IOResult (а можно и не проверять, смысла особого нет)


 
Palladin ©   (2011-02-21 12:55) [2]

AssignFile это не открытие файла


 
И. Павел ©   (2011-02-21 12:56) [3]

Перед открытием первого файла, IntToStr(TTextRec(f).Handle) = nil. Но после закрытия она <> nil, так что нужно самостоятельно устанавливать.


 
И. Павел ©   (2011-02-21 12:57) [4]

> IntToStr(TTextRec(f).Handle) = nil

TTextRec(f).Handle = nil


 
Dennis I. Komarov ©   (2011-02-21 13:06) [5]

if DeleteFile(filename) then
 ShowMessage("Файл был не открыт");


 
Dennis I. Komarov ©   (2011-02-21 13:11) [6]

А зачем такое чудо надо? Ну проверили, ну "не открыт", пытаемся открыть, а он уже и не дается...


 
Anatoly Podgoretsky ©   (2011-02-21 14:38) [7]

> KSergey  (21.02.2011 12:55:01)  [1]

AssignFile не может вызвать ошибку, если тип string


 
Anatoly Podgoretsky ©   (2011-02-21 14:38) [8]

> Dennis I. Komarov  (21.02.2011 13:06:05)  [5]

Вечная память


 
>|<   (2011-02-21 15:28) [9]


>
> TTextRec(f).Handle = nil

так не работает


> AssignFile это не открытие файла

это понятно

может лучше открывать, записывать и тут-же закрывать?
или писать в стриглист, а потом его сбрасывать в  файл.
но если случится фатал эррор, ничего не сохранится


 
Smile   (2011-02-21 15:34) [10]

А с какой "интересы" может интересовать открыт файл кем то или нет?
Желательно, вопросы формулировать конкретней.
Вы собираетесь писАть в этот файл?


 
Dennis I. Komarov ©   (2011-02-21 15:39) [11]

Чего-чего, лог конечно.


 
Игорь Шевченко ©   (2011-02-21 18:33) [12]


> так не работает


with TTextRec(F) do
 if Mode = fmClosed then
   закрыт


 
>|<   (2011-02-21 18:56) [13]


> Игорь Шевченко ©   (21.02.11 18:33) [12]

респект и уважуха!


 
Leonid Troyanovsky ©   (2011-02-21 21:51) [14]


>  как проверить, что файл открыт

> >|<   (21.02.11 12:25)  

Проверять открытость файла не надо _никогда_.

Бо, сейчас он открыт, а через дестять колов
времени его может и, во-ще,  не быть.

--
Regards, LVT.


 
Игорь Шевченко ©   (2011-02-21 23:00) [15]


> Бо, сейчас он открыт, а через дестять колов
> времени его может и, во-ще,  не быть.


тут есть один момент - открытость файла имеет смысл только по отношению к программе :)


 
Германн ©   (2011-02-22 02:41) [16]


> тут есть один момент - открытость файла имеет смысл только
> по отношению к программе

Точнее тут есть один бред. Нафига нужно проверять открыт ли уже файл твоей собственной программой?


 
Palladin ©   (2011-02-22 14:36) [17]

ну вдруг забыл



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

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

Наверх




Память: 0.5 MB
Время: 0.007 c
2-1298489959
Gu
2011-02-23 22:39
2011.06.05
Проверить наличие включенной Dep в виндах


1-1255714707
Critical Section
2009-10-16 21:38
2011.06.05
Как правильно использовать Mutex как замену Critical Section?


15-1297805399
Юрий
2011-02-16 00:29
2011.06.05
С днем рождения ! 16 февраля 2011 среда


15-1297848575
DelphiN!
2011-02-16 12:29
2011.06.05
Ошибка в bat файле


1-1256550327
Ragazor
2009-10-26 12:45
2011.06.05
Конверт string в resourcestring