Как читать данные кластера из файла, сгенерированного labview, используя .net - PullRequest
2 голосов
/ 12 ноября 2010

Я пытаюсь прочитать данные, хранящиеся в пользовательском двоичном файле, созданном с использованием LabVIEW. Файл данных создается путем записи массива кластеров. Я хочу прочитать в кластере информацию из этого файла данных с помощью программы, написанной на .net. Есть ли простой способ сделать это без изменения сгенерированного файла labview?

1 Ответ

4 голосов
/ 12 ноября 2010

Это немного зависит от вашего определения «easy».

Если вы используете стандартные функции LV, прямой двоичный файл сохраняется таким же образом, как LV хранит данные впамять .Итак, первые 4 байта хранят количество элементов в массиве.Остальные фактические данные: кластеры.Каждый кластер состоит из его членов, каждый из которых имеет размер в байтах, указанный в ссылке выше.Это может быть немного тупо, если у вас есть кластеры массивов кластеров массивов ... в любом случае, как только вы выясните типы и размеры записанных данных, вы на полпути.

ДалееВы можете почти прочитать файл, используя .NET BinaryReader .Тем не менее, LV произошла от Mac, и, как таковая, это big endian .BinaryReader этого не делает.

К счастью, Джон Скит делает.Проверьте его MiscUtil библиотеку на EndianBinaryReader, который может правильно считывать данные.

...