Главная страница
    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.044 c
15-1232370647
Кое кто
2009-01-19 16:10
2009.03.29
Обитаемый остров


4-1205434654
Blacksus
2008-03-13 21:57
2009.03.29
Программное управление проводником Windows


15-1233155675
Чудак
2009-01-28 18:14
2009.03.29
Delphi for PHP


15-1232945469
Slider007
2009-01-26 07:51
2009.03.29
С днем рождения ! 24 января 2009 суббота


2-1233870991
НосокСудьбы
2009-02-06 00:56
2009.03.29
Как правильно реализовать...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский