Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];

Вниз

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

 
@!!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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.083 c
2-1234169069
vegarulez
2009-02-09 11:44
2009.03.29
подскажите как лучше "перечитывать" переменные?


4-1207397488
Дмитрий
2008-04-05 16:11
2009.03.29
Проблема с реестром (просто)


15-1233202441
Дмитрий С
2009-01-29 07:14
2009.03.29
Как определить легальность windows xp,...


2-1234173614
Iriss
2009-02-09 13:00
2009.03.29
TObjectList.Assign


15-1233183371
Германн
2009-01-29 01:56
2009.03.29
Ох уж мне эти писатели "кривых" драйверов! -2





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский