![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вопрос по сохранению данных
aha © (2010-10-23 21:42:00)хочу задать вопрос такой , ранее программу по сохранению данных идущих с некоторых дивайсов делал так Ж
перед началом работы дивайса , создавал окно , требующий создание файла процедурой REWRITE(File);
после приема данных ( данные идут периодически максимум раз в секунду ) дописывал в файл таким образом
Append(File);
WRITE(file, параметры дивайса ).
Так не очень правильно наверное
Хочу попробовать таким образом , стартую , при этом независимо от желания будет создаваться текстовый файл , типа буфера. А после завершения работы дивайса , перед закрытием программы будет запрос , хотим ли сохранить данные и в каком формате . и программа открыв буф. текстовый файл перепишет в нужном формате и сохранит на диске и по желанию переименут файл в требуемый . Так как не хочется терять данные при случайном зависании программы, отключении дивайса и тому подобное , можно ли каждый раз при записи файл закрывать и не будет ли тормозить работу ?
Anatoly Podgoretsky (2010-10-24 09:46:00) [41]> aha (24.10.2010 00:34:13) [13]
А какая цель тогда в промежуточном файле, не пойму.
aha (2010-10-24 00:34:00) [42]----Реальных преимуществ - никаких. А вот возни больше, да и вероятность потери данных увеличивается (если сбой произойдет во время их перезаписи в постоянный файл).
так временный файл то все равно останется, сотру только после переименования.
--А вот возни больше....
Вроде бы особой возни то и нет, может я не прав, конечно.
про фирменые программы - действ. сама логика подсказывает , что сохранять надо после завершения эксперимента , то есть получения данных.Поэтому хочу переделать рабочие свои программы
Юрий Зотов (2010-10-24 00:11:00) [43]> aha (23.10.10 23:31) [11]
Еще раз - какая разница, в какой файл писать? Что он дает, временный файл, какой выигрыш?
Реальных преимуществ - никаких. А вот возни больше, да и вероятность потери данных увеличивается (если сбой произойдет во время их перезаписи в постоянный файл).
Путь Вас "фирменные" программы не смущают. Их пишут такие же люди. Они выбрали одно решение, Вы вправе повторить его же, или выбрать другое. Все зависит от конкретной задачи, от того, что для Вас важнее - скорость или надежность.
Я бы, скорее всего, предпочел надежность - потому что пусть лучше программа работает медленно и правильно, чем быстро и неправильно.Такая программа никому не нужна.
aha (2010-10-23 23:31:00) [44]я же говорил, что фирменные программы так организованы , только перед завершением работы просят сохранить данные или результаты обработки. Тоже так хочу организовать , пишу все время в буферный файл ,а после переписываю в другой , нужный ..
Anatoly Podgoretsky (2010-10-23 23:28:00) [45]
> мой комп при цикле 100 тыс. разницу дает в 2 сек. с закрытием
> файла ,
Ну вот, теперь ты выяснил, что переоткрытия бояться не стоит.
Юрий Зотов (2010-10-23 22:40:00) [46]
> aha (23.10.10 22:10) [5]
> А такой вариант какой я задумал , насчет записи во временный
> файл , и перед завершением перепись в нужный, в соответст.
> формате не хороший ?
А какая разница, в какой файл писать - во временный или в постоянный?
aha (2010-10-23 22:35:00) [47]мой комп при цикле 100 тыс. разницу дает в 2 сек. с закрытием файла ,
цикл около 7 сек. , т. е. не существенно , значит лучше закрывать файл
Anatoly Podgoretsky (2010-10-23 22:22:00) [48]> aha (23.10.2010 22:10:05) [5]
И опять критерий хорошести какой?
Anatoly Podgoretsky (2010-10-23 22:21:00) [49]> aha (23.10.2010 22:10:05) [5]
Ну так я и говорю - измерь. Например в цикле на 1000
aha (2010-10-23 22:10:00) [50]данные не очень быстры , максимум до десяти раз в секунду и то редко такая скорость ;
раньше не закрывал файл , при авар. ситуациях часть файла всегда сохранялся.
У себя то могу проверить , комп. хороший , не будет тормозить , а у заказчиков всякие компы бывают ...
А такой вариант какой я задумал , насчет записи во временный файл , и перед завершением перепись в нужный, в соответст. формате не хороший ?
Юрий Зотов (2010-10-23 21:59:00) [51]Что для Вас важнее - скорость программы или риск потери данных?
Если риск потери данных, то так и надо делать, как Вы делали (плюс еще и закрывать файл после каждого добавления).
А если важнее скорость, то можно накапливать данные в памяти, а в конце работы (или по достижении размера буфера) сбрасывать их в файл.
Anatoly Podgoretsky (2010-10-23 21:58:00) [52]> aha (23.10.2010 21:49:02) [2]
Вот это "не будет ли тормозить работу ?"
И насчет правильности - огласи критерий правильности.
aha (2010-10-23 21:49:00) [53]Анатолию - не совсем понял , что замерить ?
я хотел спросить как все таки правильно делать , как я делаю работает уже много лет. Просто в фирм. программах делается таким образом как я хочу сделать , то есть после работы с дивайсом предлагается сохранить файл, думаю где хранятся данные , если просто в массиве , то при случайном отключении все данные потеряются ..
Anatoly Podgoretsky (2010-10-23 21:45:00) [54]> aha (23.10.2010 21:42:00) [0]
А замерить самому, без нас?