Запись данных в файл

Работа с файлами и базами данных
Ответить
Аватара пользователя
Kelena
interested
interested
Сообщения: 7
Зарегистрирован: 16 мар 2014, 16:57
Версия LabVIEW: 13.0
Контактная информация:

Запись данных в файл

Сообщение Kelena »

Здравствуйте!
Нужна помощь с записью в файл, помогите, пожалуйста.
Требуется сохранить данные поля "измеренное напряжение" и коэффициенты под ним в 2 отдельных файла (.txt), но чтоб в каждом файле было записано по 100 мгновенных значений. Разобралась только с записью текущего значения, при следующем уже записывает в новый файл, а не в этот же.
Вложения
7.1.2.vi
Макет для измерения параметров сигнала
(525.31 КБ) 534 скачивания
semisegment.llb
(74.03 КБ) 392 скачивания
Последний раз редактировалось Kelena 25 ноя 2014, 20:04, всего редактировалось 1 раз.
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: Запись данных в файл

Сообщение Andrew Lunev »

1. Не нашел в вашей программе сохранения в файл даже одного значения.
2. У вас программа выполняется только один раз, откуда возьмутся 100 значений? Собираетесь сто раз программу запускать вручную?
3. Вы не дали VI "Дешифратор число-семь сегментов" без нее ни у кого программа не запустится.
Аватара пользователя
Kelena
interested
interested
Сообщения: 7
Зарегистрирован: 16 мар 2014, 16:57
Версия LabVIEW: 13.0
Контактная информация:

Re: Запись данных в файл

Сообщение Kelena »

Прикрепила изначальную программу, без записи, т.к. много чего там нахимичила и решила все это дело начать заново. Использовала "Write to text file". Я понимаю, что она выполняется один раз, поэтому и по одному значению записывает, но я не знаю, как это изменить, вот и попросила о помощи. Нужен цикл, я так понимаю, но как его правильно организовать, не разобралась. Дешифратор добавила.
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: Запись данных в файл

Сообщение Andrew Lunev »

Я так понимаю, что это учебное задание? Значит все придется делать самой.
Начать заново это самое верное решение. То, что у вас сделано, очень сложно меняется и выглядит как набор набросков, собранных в один файл.
Все таки начинать надо с изучения основ LabView. Потом определитесь с общей структурой программы.
Помогу несколькими советами.
1. Используйте для вашей задачи машину состояний с Event Structure. Как это сделать описано во многих учебниках, да и в LabView есть готовый шаблон.
2. Удалите часть, которая отвечает за всякие красивости. Сейчас у вас 70% кода занимает вывод на семисегментные индикаторы, если заменить их обычными индикаторами, код намного проще станет. Когда вся логика заработает, можете добавить их в уже готовую и отлаженную программу для красоты. Но вообще это делается намного проще с использованием просто специального шрифта, имитирующего индикаторы.
3. Для записи в файл есть два варианта. 1. Накапливаете данные в массивах, потом записываете массивы в файл. 2. Открываете файлы на запись, добавляете на каждой итерации в файл по одному значению, потом закрываете файл.
gordos
interested
interested
Сообщения: 2
Зарегистрирован: 14 апр 2015, 00:09
Версия LabVIEW: 12
Контактная информация:

Re: Запись данных в файл

Сообщение gordos »

Помогите пожалуйста, работаю с матрицами и вычислением уравнений с множеством неизвестных. Матрица квадратная большого размера 130560 строк. Работа с файлом невозможна, так как размер больше 2 Гб, решил пробовать загружать по частям, так как вычислений много. Не хочу затягивать, поэтому сразу спрошу интересующий вопрос. Как записать определенный количество бит в определенное место бинарного файла? Например 261120 кбайт в центр файла размером 2 130 739 200 байт, не загружая его. И возможно ли это?
gordos
interested
interested
Сообщения: 2
Зарегистрирован: 14 апр 2015, 00:09
Версия LabVIEW: 12
Контактная информация:

Re: Запись данных в файл

Сообщение gordos »

gordos писал(а):Помогите пожалуйста, работаю с матрицами и вычислением уравнений с множеством неизвестных. Матрица квадратная большого размера 130560 строк. Работа с файлом невозможна, так как размер больше 2 Гб, решил пробовать загружать по частям, так как вычислений много. Не хочу затягивать, поэтому сразу спрошу интересующий вопрос. Как записать определенный количество бит в определенное место бинарного файла? Например 261120 кбайт в центр файла размером 2 130 739 200 байт, не загружая его. И возможно ли это?
Задам вопрос поконкретнее. Как из большого файла считать из любого места данные, изменить их и записать в тот же файл, в то же место?
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Запись данных в файл

Сообщение dadreamer »

gordos, обратите внимание на инструменты OpenG Large File, они позволяют работать с файлами больше 2 ГБ.
Вложения
2015-04-14_9-53-16.jpg
2015-04-14_9-53-16.jpg (43.58 КБ) 13604 просмотра
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Запись данных в файл

Сообщение Borjomy_1 »

Есть вариант менее громоздкий и не требующий установки дополнительных модулей.
Для установки "курсора" пользоваться функцией "Set File Position", только учитывать, что позиция исчисляется в байтах.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Запись данных в файл

Сообщение dadreamer »

Кстати говоря, можно и без OpenG обойтись, согласно этой статье, если вы на :labview: 8.0 и выше, то вход offset у :vi: Set File Position 64-битный, что позволяет читать файлы размером до 2^64 байт. Естественно, целиком в память такие файлы грузить не следует, да и не получится, т.к. число считываемых байт у :vi: Read from Text File / Read from Binary File по-прежнему в 32-битном формате (2^31 байт ≈ 2 ГБ).
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Сохранение данных»