|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.11.2015, 05:32 | #1 |
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,265
|
Защита файлов от повреждений
Здравствуйте. Пишу программу для заметок. В ней нет как таковых кнопок сохранения. Там создаешь новую заметку, и пишешь текст. Можно переключаться по заметкам. Планируется что данная программа будет переносная. И возникла такая проблема, допустим мы набираем текст и выключается свет. Всё, данных нет . Если сохранять после ввода каждого символа, то будет тормозить 100%. Весть процесс сохранности данных лежит на программе.
Подскажите как лучше и безопаснее сохранять данные в такой ситуации? |
24.11.2015, 06:52 | #2 |
Форумчанин
Регистрация: 29.10.2015
Сообщений: 273
|
Каждые N минут по таймеру.
? |
24.11.2015, 09:20 | #3 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
изменение(потеря) фокуса ввода. OnExit
гарантия потери не более чем одной, редактируемой(набираемой) в данной момент, заметки. Если нужно больше, то ДВА файла 1.Temp ТОЛЬКО текущая заметка на каждый чих( то бишь на каждое изменение) причем можно именно как журнал этих самых ("чихов") изменений. В качестве бонуса такой схемы неограниченное (в пределах одной редакции) количество откатов (Ctrl + Z). 2. DataBase все заметки по указанию (или OnExit) и очистка Temp
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 24.11.2015 в 09:32. |
24.11.2015, 09:26 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А я бы тоже по таймеру делал...
I'm learning to live...
|
24.11.2015, 09:28 | #5 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
или при простое приложения > N минут.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
24.11.2015, 09:29 | #6 |
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,265
|
Filka, N минут это не плохо, но сколько скорость печати среднего пользователя? Слов 20? А если тексты копировались, вставлялись. То за пару минут наберется нехилый объем и не очень будет это всё потерять.
evg_m, не особо годиться, а если я набирал текст, вот как сейчас этот ответ, и не терял фокус ввода, и представьте это все просто пропало, мне нужно опять формулировать свои мысли по новой. Думаю это тоже не подойдет. |
24.11.2015, 09:35 | #7 |
Форумчанин
Регистрация: 20.06.2007
Сообщений: 270
|
Поставьте срабатывание сохранения на постановку знака препинания, например на точку. Записал мысль, поставил точку - автоматически сохранилось.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько? (с) Библия. Вольный перевод с древнееврейского. |
24.11.2015, 09:50 | #8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Всё пропалало? Это браузер, наверное, плохой. Откройте MS Word, вставьте текст из буфера обмера. Выдерните шнур питания. Опять не сохранилось? Да что же MicroSoft не может нормальную программу написать?! Я Вам больше скажу. Если выдёргивать шнур питания во время работы Windows, то есть шанс получить вообще убитую систему. Но не любит жесткий диск, когда его прерывают на середине операции записи. В лучшем случае появляются потерянные цепочки данных. В худшем - происходит потеря данных. Для борьбы с выключением питания нужно использовать аппаратные средства - например, UPS. Программным путём эта проблема не решается. Теперь по поводу сохранения ваших данных. Считаете, что две минуты это много? Так храните флажок isModified (если пользователь сделал изменения) и каждые 10 секунд проверяйте флажок, если были изменения, сохраняйте. А при операциях вставки сохраняйте сразу, как только пользователь вставил текст. Все эти резервные сохранения делайте во временный файл (смотрите пост #3). И поймите, что у пользователя при аварийном выключении питания есть шанс потерять намного больше, чем очень важные заметки. p.s. история из жизни. я как-то набирал один большой документ на ДВК. Без жесткого диска (его там не было). Сохранение на гибкие дискеты. Чтобы сохранить документ, нужно было нажать некую управляющую комбинацию клавиш. Но сохранение на дискету проходило не очень быстро (ну, пусть это будет для определённости 10 секунд). Я начал набирать документ. Просидел минут тридцать. Набрал несколько страниц. И тут выключили свет в помещении, где я работал. Через пару минут включили. Но всё, разумеется, потерялось. Я очень расстроился. полчаса потрачено впустую. Ладно. Ситуация экстренная. Ничего не поделаешь, бывает. Начал набирать заново. и минут через 15 свет опять отключили. Начал набирать заново. Но в следующий раз я уже сохранял документ каждые несколько минут набора. Свет выключался ещё раз. Но потерял я при этом всего несколько строчек набранного текста (и несколько минут времени на повторный набор). С тех пор у меня "безумная" привычка. Когда я набираю текст в редакторе я периодически нажимаю Ctrl-S (сохранить). Это отнимает секунды. Но может сохранить намного больше. Так что, сохранение данных - проблема пользователя, а не ваша. Успехов! |
|
24.11.2015, 09:57 | #9 |
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,265
|
Я не делаю больших редакторов чтобы там вводили объемные тексты. И хочу максимально упростить программу. Если уж сравнивать, то что-то типа переносной программы StykiNot от майкрософта, только несколько иного формата. Поэтому и хотелось бы сделать что-то что автоматически будет сохранять то что вы ввели.
|
24.11.2015, 10:01 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я понял Вас.
на мой взгляд в пост #3 предложено толковое решение вашей проблемы. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Защита файлов | serg_volk777 | Visual C++ | 4 | 19.11.2011 11:44 |
защита файлов | beygul | Помощь студентам | 19 | 19.01.2010 09:05 |
Защита файлов! | Sanek777 | Общие вопросы Delphi | 2 | 26.09.2008 17:03 |
Защита файлов от удаления | Viteef | Свободное общение | 5 | 15.06.2007 22:44 |
Защита файлов от удаления | Viteef | Общие вопросы Delphi | 10 | 02.06.2007 07:40 |