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

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

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

Postby Kelena on 25 Nov 2014, 19:17

Здравствуйте!
Нужна помощь с записью в файл, помогите, пожалуйста.
Требуется сохранить данные поля "измеренное напряжение" и коэффициенты под ним в 2 отдельных файла (.txt), но чтоб в каждом файле было записано по 100 мгновенных значений. Разобралась только с записью текущего значения, при следующем уже записывает в новый файл, а не в этот же.
Attachments
7.1.2.vi
Макет для измерения параметров сигнала
(525.31 KiB) Downloaded 389 times
semisegment.llb
(74.03 KiB) Downloaded 268 times
Last edited by Kelena on 25 Nov 2014, 20:04, edited 1 time in total.
User avatar
Kelena
interested
interested
 
Posts: 7
Joined: 16 Mar 2014, 16:57
LabVIEW Version: 13.0
Karma: 0

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

Postby Andrew Lunev on 25 Nov 2014, 19:45

1. Не нашел в вашей программе сохранения в файл даже одного значения.
2. У вас программа выполняется только один раз, откуда возьмутся 100 значений? Собираетесь сто раз программу запускать вручную?
3. Вы не дали VI "Дешифратор число-семь сегментов" без нее ни у кого программа не запустится.
User avatar
Andrew Lunev
leader
leader
 
Posts: 858
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2016
Karma: 244
hardware I/O VIP teachers

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

Postby Kelena on 25 Nov 2014, 20:01

Прикрепила изначальную программу, без записи, т.к. много чего там нахимичила и решила все это дело начать заново. Использовала "Write to text file". Я понимаю, что она выполняется один раз, поэтому и по одному значению записывает, но я не знаю, как это изменить, вот и попросила о помощи. Нужен цикл, я так понимаю, но как его правильно организовать, не разобралась. Дешифратор добавила.
User avatar
Kelena
interested
interested
 
Posts: 7
Joined: 16 Mar 2014, 16:57
LabVIEW Version: 13.0
Karma: 0

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

Postby Andrew Lunev on 25 Nov 2014, 21:55

Я так понимаю, что это учебное задание? Значит все придется делать самой.
Начать заново это самое верное решение. То, что у вас сделано, очень сложно меняется и выглядит как набор набросков, собранных в один файл.
Все таки начинать надо с изучения основ LabView. Потом определитесь с общей структурой программы.
Помогу несколькими советами.
1. Используйте для вашей задачи машину состояний с Event Structure. Как это сделать описано во многих учебниках, да и в LabView есть готовый шаблон.
2. Удалите часть, которая отвечает за всякие красивости. Сейчас у вас 70% кода занимает вывод на семисегментные индикаторы, если заменить их обычными индикаторами, код намного проще станет. Когда вся логика заработает, можете добавить их в уже готовую и отлаженную программу для красоты. Но вообще это делается намного проще с использованием просто специального шрифта, имитирующего индикаторы.
3. Для записи в файл есть два варианта. 1. Накапливаете данные в массивах, потом записываете массивы в файл. 2. Открываете файлы на запись, добавляете на каждой итерации в файл по одному значению, потом закрываете файл.
User avatar
Andrew Lunev
leader
leader
 
Posts: 858
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2016
Karma: 244
hardware I/O VIP teachers

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

Postby gordos on 14 Apr 2015, 00:23

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

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

Postby gordos on 14 Apr 2015, 00:34

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

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

Postby dadreamer on 14 Apr 2015, 07:56

gordos, обратите внимание на инструменты OpenG Large File, они позволяют работать с файлами больше 2 ГБ.
Attachments
2015-04-14_9-53-16.jpg
2015-04-14_9-53-16.jpg (43.58 KiB) Viewed 8745 times
User avatar
dadreamer
professor
professor
 
Posts: 3062
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 765
I/O VIP vision internet

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

Postby Borjomy_1 on 14 Apr 2015, 08:39

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

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

Postby dadreamer on 14 Apr 2015, 10:46

Кстати говоря, можно и без 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 ГБ).
User avatar
dadreamer
professor
professor
 
Posts: 3062
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 765
I/O VIP vision internet


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

Who is online

Users browsing this forum: No registered users and 4 guests

cron