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

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

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

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

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

Сообщение Attid »

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

простая работа с файлом

Код: Выделить всё

Var F : text;

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


как я могу узнать что переменная F инициализирована, например перед закрытием или записью хочу убедится что файл открыт.
wavebvg
постоялец
Сообщения: 355
Зарегистрирован: 28.02.2008 03:57:35

Сообщение wavebvg »

Попробуй игнорировать все ошибки при выполнении записи, а потом посмотри коды ошибок - если ошибки есть, тогда файл был открыт для записи :-)
Аватара пользователя
B4rr4cuda
энтузиаст
Сообщения: 693
Зарегистрирован: 28.12.2007 06:48:35

Сообщение B4rr4cuda »

Не все ошибки, а только ввода\вывода. Если не ошибаюсь, задается директивой {$I-}
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Код: Выделить всё

  if TTextRec(f).mode = fmClosed then
    // файл закрыт
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

А почему потоки не используеш? По моему мнениию, с ними удобнее.
m_guest
постоялец
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Сообщение m_guest »

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

А дальше используется функция IOResult. Вроде так..
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

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

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

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


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

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

m_guest
так, но не хочу так выше написал.
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

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

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

Мне кажется что появление такого вопроса есть признак выбора не удачного решения :roll:
Ответить