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

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

Добавлено: 25 ноя 2014, 19:17
Kelena
Здравствуйте!
Нужна помощь с записью в файл, помогите, пожалуйста.
Требуется сохранить данные поля "измеренное напряжение" и коэффициенты под ним в 2 отдельных файла (.txt), но чтоб в каждом файле было записано по 100 мгновенных значений. Разобралась только с записью текущего значения, при следующем уже записывает в новый файл, а не в этот же.

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

Добавлено: 25 ноя 2014, 19:45
Andrew Lunev
1. Не нашел в вашей программе сохранения в файл даже одного значения.
2. У вас программа выполняется только один раз, откуда возьмутся 100 значений? Собираетесь сто раз программу запускать вручную?
3. Вы не дали VI "Дешифратор число-семь сегментов" без нее ни у кого программа не запустится.

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

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

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

Добавлено: 25 ноя 2014, 21:55
Andrew Lunev
Я так понимаю, что это учебное задание? Значит все придется делать самой.
Начать заново это самое верное решение. То, что у вас сделано, очень сложно меняется и выглядит как набор набросков, собранных в один файл.
Все таки начинать надо с изучения основ LabView. Потом определитесь с общей структурой программы.
Помогу несколькими советами.
1. Используйте для вашей задачи машину состояний с Event Structure. Как это сделать описано во многих учебниках, да и в LabView есть готовый шаблон.
2. Удалите часть, которая отвечает за всякие красивости. Сейчас у вас 70% кода занимает вывод на семисегментные индикаторы, если заменить их обычными индикаторами, код намного проще станет. Когда вся логика заработает, можете добавить их в уже готовую и отлаженную программу для красоты. Но вообще это делается намного проще с использованием просто специального шрифта, имитирующего индикаторы.
3. Для записи в файл есть два варианта. 1. Накапливаете данные в массивах, потом записываете массивы в файл. 2. Открываете файлы на запись, добавляете на каждой итерации в файл по одному значению, потом закрываете файл.

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

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

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

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

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

Добавлено: 14 апр 2015, 07:56
dadreamer
gordos, обратите внимание на инструменты OpenG Large File, они позволяют работать с файлами больше 2 ГБ.

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

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

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

Добавлено: 14 апр 2015, 10:46
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 ГБ).