Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.06.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
>|<   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.005 c
15-1297848575
DelphiN!
2011-02-16 12:29
2011.06.05
Ошибка в bat файле


4-1248431121
Игорь
2009-07-24 14:25
2011.06.05
Перечисление групп процесса


2-1298888893
bumb
2011-02-28 13:28
2011.06.05
запрос


10-1156496750
фыва
2006-08-25 13:05
2011.06.05
OleContainer и ScrollBar


4-1248243091
Danger
2009-07-22 10:11
2011.06.05
в терминальной сессии - найти окно по классу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский