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

Вниз

Обеспечить безопасность сохранения данных   Найти похожие ветки 

 
Strate   (2009-02-05 17:51) [0]

Добрый день, мастера.

Суть вопроса такова:

Есть программка, которая каждые N секунд (N в пределах от 1 до 10 секунд) сохраняет некие данные в файлик. Сохранение происходит следующим образом: удаляется исходный файл, и заново создаётся.

В случае казуса (отключение света, отказ системы, отказ программы) данные могут либо вообще потеряться, либо записаться не полностью.

Какие есть более безопасные пути сохранения данных?


 
tesseract ©   (2009-02-05 17:55) [1]


> Какие есть более безопасные пути сохранения данных?


Переименовать старый файл, записать новый. Старые копии можно удалять.


 
Ega23 ©   (2009-02-05 17:56) [2]

Самый тупой способ: 2 файла, в один идут "четные сохранения", в другой - "нечётные".


 
test ©   (2009-02-05 17:58) [3]

Ведение журнала в БД, теория по этим вещам называется "системы гарантированной доставки".


 
Городской Шаман   (2009-02-05 18:01) [4]


> Strate   (05.02.09 17:51)  


Я делал так:
1. Сохраняем данные в новый файл со случайно сгенерированным именем(по GUID-у подойдёт) и расширением tmp.
2. Переименовываем данный файл в нужное имя(в NTFS это атомарная журналируемая операция).

При старте программы трём все tmp в своём рабочем каталоге.


 
БарЛог ©   (2009-02-05 18:23) [5]

Strate   (05.02.09 17:51)  
хорошо хоть не "удаляем файл, ждём N секунд, записываем новый файл" :)


 
axis_of_evil ©   (2009-02-05 18:47) [6]

возьми пример с MS Word - тот, сколь я понимаю, создает кучу временных файлов каждые N секунд, а при корректном выходе все временные файлы удаляет



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
2-1234419901
pavel_guzhanov
2009-02-12 09:25
2009.04.05
как программно определить, запущен ли брандмауэр на компьютере?


2-1234650449
Johnnnn
2009-02-15 01:27
2009.04.05
Считывание данных с постоянно обновляющегося TXT?


6-1201753581
MBo
2008-01-31 07:26
2009.04.05
Прием большого потока данных по UDP


15-1233701918
Германн
2009-02-04 01:58
2009.04.05
RAD Studio 2007 vs BDS 2006


3-1218631083
gentle
2008-08-13 16:38
2009.04.05
как отобразить в dbgrid результат выполнения ....