проверка что файл не закрыт

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

проверка что файл не закрыт

Сообщение Attid » 12.05.2008 22:09:07

чет у меня лыжи встали

простая работа с файлом
Код: Выделить всё
Var F : text;

begin
Assign (f,'Test.txt');
ReWrite (F);
Writeln (F,'Some text written to Test.txt');
close (f);
end;


как я могу узнать что переменная F инициализирована, например перед закрытием или записью хочу убедится что файл открыт.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: проверка что файл не закрыт

Сообщение wavebvg » 12.05.2008 23:21:56

Попробуй игнорировать все ошибки при выполнении записи, а потом посмотри коды ошибок - если ошибки есть, тогда файл был открыт для записи :-)
wavebvg
постоялец
 
Сообщения: 355
Зарегистрирован: 28.02.2008 04:57:35

Re: проверка что файл не закрыт

Сообщение B4rr4cuda » 13.05.2008 00:26:51

Не все ошибки, а только ввода\вывода. Если не ошибаюсь, задается директивой {$I-}
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: проверка что файл не закрыт

Сообщение Sergei I. Gorelkin » 13.05.2008 01:40:58

Код: Выделить всё
  if TTextRec(f).mode = fmClosed then
    // файл закрыт
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: проверка что файл не закрыт

Сообщение alexs » 13.05.2008 07:26:58

А почему потоки не используеш? По моему мнениию, с ними удобнее.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: проверка что файл не закрыт

Сообщение m_guest » 13.05.2008 09:24:26

B4rr4cuda писал(а):задается директивой {$I-}

А дальше используется функция IOResult. Вроде так..
m_guest
постоялец
 
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Re: проверка что файл не закрыт

Сообщение Attid » 16.05.2008 22:34:16

ой чет с новым форумом так и не заметил что мне ответили =)

wavebvg
не гламурно, моло ли что еще там пропущу.

B4rr4cuda
да такое знаю но все равно это подавление ошибок.


Sergei I. Gorelkin
похоже на правду =) правда не понял что есть TTextRec(f).mode, но попробую

alexs
да не знаю как то по привычке =) а с потока построчно читать можно или самому конец строки искать ?
да и как-то потоки мне кажется больше ресурсов потреблять будут если их в секунду сотню создавать =)

m_guest
так, но не хочу так выше написал.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: проверка что файл не закрыт

Сообщение shade » 18.05.2008 17:50:11

Sergei I. Gorelkin писал(а):if TTextRec(f).mode = fmClosed then
// файл закрыт

ИМХО, нестоит
хотя бы потому, что пока не вызовешь Assign, там будет мусор

Мне кажется что появление такого вопроса есть признак выбора не удачного решения :roll:
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 5

Рейтинг@Mail.ru