Страница 1 из 1

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

Добавлено: 08 янв 2017, 19:22
Meteor
Здравствуйте!
Поздравляю всех с наступившим 2017 годом, прошедшими праздниками и грядущими трудовыми буднями! :drink:
Преамбула.
Есть источник данных, которые поступают с интервалом в 2,5 секунды.
Создан примитивный пример приема данных и передачи их посредством очереди в цикл для записи в бинарный файл.
Сам файл создается при запуске программы с уникальным именем.
Есть одно непонятное место:
во время работы, наблюдаю заполнение строкового индикатора, но при этом созданный файл не увеличивается в "размере".
После нажатия кнопки "стоп", файл записывается в полном объеме.
Собственно хочется понять, как заставить (если это возможно) файл пополняться по мере его заполнения, включение ВИшек открытия и закрытия файла в цикл результата не принесло.

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

Добавлено: 08 янв 2017, 20:00
IvanLis
Meteor писал(а):Собственно хочется понять, как заставить (если это возможно) файл пополняться по мере его заполнения, включение ВИшек открытия и закрытия файла в цикл результата не принесло.
И Вас с наступившими!
Flush File (http://zone.ni.com/reference/en-XX/help ... lush_file/) вам в помощь.
Обсуждалось в этой теме: http://labviewportal.org/viewtopic.php? ... 17&p=66406

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

Добавлено: 08 янв 2017, 21:59
Meteor
Спасибо, помог Ваш пример.

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

Добавлено: 09 янв 2017, 09:58
Borjomy_1
Вообще-то странно, что у вас файл не увеличивался. При подобной схеме работы файл должен увеличиваться в размере, особенно если его открывают и закрывают после записи.

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

Добавлено: 09 янв 2017, 21:20
Meteor
Возможно что наблюдавшаяся картина была неверно интерпретирована: смотрел в тотал командере - так в нем даже с флашем файл изменял размер после завершения работы либо после выхода из папки. Если же наблюдать в проводнике винды - файл (с флашем) увеличивался по мере заполнения.

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

Добавлено: 09 янв 2017, 23:38
dadreamer
Meteor, дело в том, что :labview: сам по себе не использует программную буферизацию, поэтому операция записи выполняется сразу же, даже при записи одного байта. Это уже было проверено ранее в той теме по ссылке IvanLis (см. также мой пример LOG.vi). Хотя проверено сугубо на Винде с NTFS. Ну, то есть, Flush File в этом случае не требуется. Помимо прочего, он вносит дополнительную задержку в цикл (+ дёргает лишний раз винт). У вас может быть другая ОС или файловая система. Либо на самом деле
Meteor писал(а):наблюдавшаяся картина была неверно интерпретирована