Данные сохраняются при завершении программы

Работа с файлами и базами данных

Данные сохраняются при завершении программы

Postby Meteor on 08 Jan 2017, 19:22

Здравствуйте!
Поздравляю всех с наступившим 2017 годом, прошедшими праздниками и грядущими трудовыми буднями! :drink:
Преамбула.
Есть источник данных, которые поступают с интервалом в 2,5 секунды.
Создан примитивный пример приема данных и передачи их посредством очереди в цикл для записи в бинарный файл.
Сам файл создается при запуске программы с уникальным именем.
Есть одно непонятное место:
во время работы, наблюдаю заполнение строкового индикатора, но при этом созданный файл не увеличивается в "размере".
После нажатия кнопки "стоп", файл записывается в полном объеме.
Собственно хочется понять, как заставить (если это возможно) файл пополняться по мере его заполнения, включение ВИшек открытия и закрытия файла в цикл результата не принесло.
Attachments
save_file_lv.jpg
Кусок программки отвечающей за запись двоичных данных.
Meteor
junior
junior
 
Posts: 67
Joined: 25 Oct 2013, 17:37
LabVIEW Version: 2012
Karma: 13
hardware I/O

Re: Данные сохраняются при завершении программы

Postby IvanLis on 08 Jan 2017, 20:00

Meteor wrote:Собственно хочется понять, как заставить (если это возможно) файл пополняться по мере его заполнения, включение ВИшек открытия и закрытия файла в цикл результата не принесло.


И Вас с наступившими!
Flush File (http://zone.ni.com/reference/en-XX/help ... lush_file/) вам в помощь.
Обсуждалось в этой теме: viewtopic.php?f=21&t=8317&p=66406
User avatar
IvanLis
professor
professor
 
Posts: 4352
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 670
hardware VIP bloggers teachers

Re: Данные сохраняются при завершении программы

Postby Meteor on 08 Jan 2017, 21:59

Спасибо, помог Ваш пример.
Meteor
junior
junior
 
Posts: 67
Joined: 25 Oct 2013, 17:37
LabVIEW Version: 2012
Karma: 13
hardware I/O

Re: Данные сохраняются при завершении программы

Postby Borjomy_1 on 09 Jan 2017, 09:58

Вообще-то странно, что у вас файл не увеличивался. При подобной схеме работы файл должен увеличиваться в размере, особенно если его открывают и закрывают после записи.
Borjomy_1
expert
expert
 
Posts: 1594
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 285
VIP

Re: Данные сохраняются при завершении программы

Postby Meteor on 09 Jan 2017, 21:20

Возможно что наблюдавшаяся картина была неверно интерпретирована: смотрел в тотал командере - так в нем даже с флашем файл изменял размер после завершения работы либо после выхода из папки. Если же наблюдать в проводнике винды - файл (с флашем) увеличивался по мере заполнения.
Meteor
junior
junior
 
Posts: 67
Joined: 25 Oct 2013, 17:37
LabVIEW Version: 2012
Karma: 13
hardware I/O

Re: Данные сохраняются при завершении программы

Postby dadreamer on 09 Jan 2017, 23:38

Meteor, дело в том, что :labview: сам по себе не использует программную буферизацию, поэтому операция записи выполняется сразу же, даже при записи одного байта. Это уже было проверено ранее в той теме по ссылке IvanLis (см. также мой пример LOG.vi). Хотя проверено сугубо на Винде с NTFS. Ну, то есть, Flush File в этом случае не требуется. Помимо прочего, он вносит дополнительную задержку в цикл (+ дёргает лишний раз винт). У вас может быть другая ОС или файловая система. Либо на самом деле
Meteor wrote:наблюдавшаяся картина была неверно интерпретирована
User avatar
dadreamer
doctor
doctor
 
Posts: 2649
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2016
Karma: 669
I/O VIP vision internet


Return to Сохранение данных

Who is online

Users browsing this forum: No registered users and 1 guest

cron