Конференция "Основная" » Проверка корректности файла
 
  • @!!ex © (14.04.08 12:05) [0]
    Есть файл конфигурации.
    ПРи запуске программа его читает и выставляет соотетствующие параметры.
    При выходе - записывает в файл данные.
    На днях один из тестеров пожаловался на такой момент:
    изменил настройки, нажал кнопочку "применить" в этот момент проект грохнулся(странно, за пол года тестирования никогда не падал... ну это дело тестера, как он этого добился), в итоге файл конфигурации оказался не корректным. Программа пытается прочитать его, прочитать не удается, и она падает благополучно.
    Соответственно встала задача как то проверять файл на корректность. Как это лучше всего сделать?
  • Плохиш © (14.04.08 12:32) [1]

    > Проверка корректности файла
    >
    > @!!ex ©   (14.04.08 12:05)
    > Соответственно встала задача как то проверять файл на корректность.
    >  Как это лучше всего сделать?

    Использовать механизм обработки исключительных ситуаций try/except try/finally.
  • Kolan © (14.04.08 12:35) [2]
    > Соответственно встала задача как то проверять файл на корректность.
    > Как это лучше всего сделать?


    > Использовать механизм обработки исключительных ситуаций
    > try/except try/finally.

    И если не получилось(эксепшн) использовать настройки по умолчанию, зашитые в программу.
  • Riply © (14.04.08 12:37) [3]
    Если защищаться от изменений со стороны или незаконченой записи, то, может, простейшая подпись ?
    CRC, например ?
  • VAleksey (14.04.08 12:37) [4]
    ReadLN - ами.
  • Anatoly Podgoretsky © (14.04.08 13:12) [5]
    > VAleksey  (14.04.2008 12:37:04)  [4]

    Ввести понятие тразакций, сначала в новый файл, затем переименования в бак, затем переименования нового файла.
    Ну и конечно возможность сброса настроек в значение по умолчанию.
  • KSergey © (14.04.08 13:17) [6]
    > Riply ©   (14.04.08 12:37) [3]
    > Если защищаться от изменений со стороны или незаконченой
    > записи, то, может, простейшая подпись ?

    И что? Ну есть файл с некорректной подписью. Что программе делать в такой ситуации? Продолжать благополучно падать?
  • KSergey © (14.04.08 13:20) [7]
    > @!!ex ©   (14.04.08 12:05)  
    > изменил настройки, нажал кнопочку "применить" в этот момент
    > проект грохнулся(... ну это дело тестера, как он этого добился),
    > в итоге файл конфигурации оказался не корректным.

    А вот раз файл некорректный вышел - то это уже разработчика дело, а не тестера, согласитесь.
  • Anatoly Podgoretsky © (14.04.08 13:42) [8]
    > KSergey  (14.04.2008 13:20:07)  [7]

    Дело тестера довести до этой ситуации, раз удалось, то хороший тестер.
  • Оригинал (15.04.08 13:09) [9]

    > Соответственно встала задача как то проверять файл на корректность.
    >  Как это лучше всего сделать?


    А зачем проверять? Не лучше ли записывать сразу при каждом изменении?
  • AndreyV © (15.04.08 13:30) [10]
    > [0] @!!ex ©   (14.04.08 12:05)

    Может и грохнулся потому, что файл уже был битый?
  • tesseract © (15.04.08 14:45) [11]

    >  Программа пытается прочитать его, прочитать не удается,
    >  и она падает благополучно.


    В бинарнике настройки лучше не хранить. А то юзер вставит тебе опцию, при которой программа грузиться не будет. К тому же при битых настройках программа должна автоматом загружать по умолчанию.
  • webpauk © (15.04.08 15:04) [12]
    можно еще проверять на длину файла.
    как константу сохраняешь длину корректного файла, если не соответствует, то переписываешь файл с настройками по умолчанию
  • webpauk © (15.04.08 15:05) [13]
    function GetFileSize(fFileName: string): Integer;
    var
     InfoFile: TSearchRec;
     AttrFile: Integer;
     ErrorReturn: Integer;
    begin
     AttrFile:=$0000003F;
     ErrorReturn:=FindFirst(fFileName, AttrFile, InfoFile);
     if ErrorReturn <> 0 then Result:=-1
     else Result:=InfoFile.Size;
     FindClose(InfoFile);
    end;

 
Конференция "Основная" » Проверка корректности файла
Есть новые Нет новых   [134487   +1][b:0][p:0.001]