Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2009, 20:59   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Не срабатывает проверка IOResult.

Код:
Function SRV_FileExists(FileName : ShortString) : Boolean;
 Var
  TestFile : TextFile;
 Begin
  AssignFile(TestFile, FileName);
  {$I-}
  Reset(TestFile);
  If IOResult <> 0 Then Result := FALSE Else Result := TRUE;
  CloseFile(TestFile);
  {$I+}
 End;
Проверяю в первый раз:
If SRV_FileExists('File1.txt') Then - Выводит TRUE если он есть и False если его нет. Это замечательно...
А Вот когда проверяю второй файл начинаются проблемы
If SRV_FileExists('File2.txt') Then - Выводит True, если есть файл 1 и фалс если файла 1 нет ()
Имя разумеется правильно, вот:
Первый:
Код:
 If SRV_FileExists(LogDir + '\Log.txt') Then
Второй:
Код:
If SRV_FileExists(LogDir + '\Scripts.asc') Then
Как лечить сие чудо?

Тут, по моему, возможны две причины - либо не разассигнируется TestFile, либо не обнуляется InOutRes.

Поставил перед проверкой присваивание к переменной I:
Код:
  I := IOResult;
  If I <> 0 Then Result := FALSE Else Result := TRUE;
Итог:
Нет первого - I = 2 Нет второго I = 2
нет Первого - I = 2 Есть второй I = 103 О_о
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 16.12.2009 в 21:27.
Alex Cones вне форума Ответить с цитированием
Старый 16.12.2009, 21:37   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Код:
Function SRV_FileExists(FileName : ShortString) : Boolean;
 Var
  TestFile : TextFile;
 Begin
  AssignFile(TestFile, FileName);
  {$I-}
  Reset(TestFile);
  {$I+}
  If IOResult = 0 Then begin
    Result := TRUE;
    CloseFile(TestFile);
  end Else Result := FALSE;
 End;
И все в порядке
Скандербег вне форума Ответить с цитированием
Старый 16.12.2009, 21:39   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Ой спасибо!!! Долгих лет здравия!!!

Значит все дело было в том, что я на законных основаниях закрывал файл?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 16.12.2009, 21:59   #4
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Да, именно.
Скандербег вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Индекс не срабатывает GenniY БД в Delphi 4 24.11.2009 15:05
Не срабатывает макрос... Busine2009 Фриланс 6 14.08.2009 10:14
Не срабатывает OnCloseQuery Arkuz Общие вопросы Delphi 4 31.07.2009 01:32
Не срабатывает Защита Автофигуры valerij Microsoft Office Excel 6 15.03.2009 18:50
PopUpMenu не срабатывает OnDrawItem Comer_Jus Общие вопросы Delphi 6 16.05.2008 21:48