Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.03.29;
Скачать: CL | DM;

Вниз

Проверка корректности файла   Найти похожие ветки 

 
@!!ex ©   (2008-04-14 12:05) [0]

Есть файл конфигурации.
ПРи запуске программа его читает и выставляет соотетствующие параметры.
При выходе - записывает в файл данные.
На днях один из тестеров пожаловался на такой момент:
изменил настройки, нажал кнопочку "применить" в этот момент проект грохнулся(странно, за пол года тестирования никогда не падал... ну это дело тестера, как он этого добился), в итоге файл конфигурации оказался не корректным. Программа пытается прочитать его, прочитать не удается, и она падает благополучно.
Соответственно встала задача как то проверять файл на корректность. Как это лучше всего сделать?


 
Плохиш ©   (2008-04-14 12:32) [1]


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

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


 
Kolan ©   (2008-04-14 12:35) [2]

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


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

И если не получилось(эксепшн) использовать настройки по умолчанию, зашитые в программу.


 
Riply ©   (2008-04-14 12:37) [3]

Если защищаться от изменений со стороны или незаконченой записи, то, может, простейшая подпись ?
CRC, например ?


 
VAleksey   (2008-04-14 12:37) [4]

ReadLN - ами.


 
Anatoly Podgoretsky ©   (2008-04-14 13:12) [5]

> VAleksey  (14.04.2008 12:37:04)  [4]

Ввести понятие тразакций, сначала в новый файл, затем переименования в бак, затем переименования нового файла.
Ну и конечно возможность сброса настроек в значение по умолчанию.


 
KSergey ©   (2008-04-14 13:17) [6]

> Riply ©   (14.04.08 12:37) [3]
> Если защищаться от изменений со стороны или незаконченой
> записи, то, может, простейшая подпись ?

И что? Ну есть файл с некорректной подписью. Что программе делать в такой ситуации? Продолжать благополучно падать?


 
KSergey ©   (2008-04-14 13:20) [7]

> @!!ex ©   (14.04.08 12:05)  
> изменил настройки, нажал кнопочку "применить" в этот момент
> проект грохнулся(... ну это дело тестера, как он этого добился),
> в итоге файл конфигурации оказался не корректным.

А вот раз файл некорректный вышел - то это уже разработчика дело, а не тестера, согласитесь.


 
Anatoly Podgoretsky ©   (2008-04-14 13:42) [8]

> KSergey  (14.04.2008 13:20:07)  [7]

Дело тестера довести до этой ситуации, раз удалось, то хороший тестер.


 
Оригинал   (2008-04-15 13:09) [9]


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


А зачем проверять? Не лучше ли записывать сразу при каждом изменении?


 
AndreyV ©   (2008-04-15 13:30) [10]

> [0] @!!ex ©   (14.04.08 12:05)

Может и грохнулся потому, что файл уже был битый?


 
tesseract ©   (2008-04-15 14:45) [11]


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


В бинарнике настройки лучше не хранить. А то юзер вставит тебе опцию, при которой программа грузиться не будет. К тому же при битых настройках программа должна автоматом загружать по умолчанию.


 
webpauk ©   (2008-04-15 15:04) [12]

можно еще проверять на длину файла.
как константу сохраняешь длину корректного файла, если не соответствует, то переписываешь файл с настройками по умолчанию


 
webpauk ©   (2008-04-15 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;



Страницы: 1 вся ветка

Текущий архив: 2009.03.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
15-1232061503
Дмитрий С
2009-01-16 02:18
2009.03.29
Экстремальный ноутбук


15-1232375977
SP
2009-01-19 17:39
2009.03.29
Съемный диск


15-1232440471
Рыбба
2009-01-20 11:34
2009.03.29
Вопрос про наследование форм


2-1233341544
CodeMaster
2009-01-30 21:52
2009.03.29
Свойство Parent


2-1233557503
Mops
2009-02-02 09:51
2009.03.29
определение variant