Чтение данных разного числового типа
-
- assistant
- Сообщения: 132
- Зарегистрирован: 23 ноя 2007, 16:44
- Награды: 1
- Версия LabVIEW: 7.1;8.5.1
- Откуда: Москва
- Благодарил (а): 2 раза
Чтение данных разного числового типа
Хотелось бы сделать программу, которая позволяла бы считывать данные разного типа. Хотелось бы использовать одну функцию для считывания данных из файла в строку, в затем в зависимости от указанного типа преобразовать данные строки в нужный числовой формат. Получилось у меня только с unsigned char, а вот как преобразовать данные строки в 16 битовые числовые значения не знаю. Помогите, пожалуйста. Прикрепил свой недоделанный проект.
- Вложения
-
- Чтение данных.zip
- (456.4 КБ) 166 скачиваний
-
Forward
- professional
- Сообщения: 337
- Зарегистрирован: 03 мар 2008, 12:41
- Награды: 3
- Версия LabVIEW: 2010
- Откуда: Кишинев
- Контактная информация:
Re: Чтение данных разного числового типа
Ну так и в чем проблема? Из U8 можно без проблем куда угодно преобразовать: см. например функцию Join Numbers. Или еще проще: функция Unflatten From String - просто указываешь какой тип вытаскивать из строки.
-
- assistant
- Сообщения: 132
- Зарегистрирован: 23 ноя 2007, 16:44
- Награды: 1
- Версия LabVIEW: 7.1;8.5.1
- Откуда: Москва
- Благодарил (а): 2 раза
Re: Чтение данных разного числового типа
Что-то у меня не получилось.
- Вложения
-
- Обработка данных.vi
- (2.02 МБ) 161 скачивание
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Чтение данных разного числового типа
проще всего так:
(внимание: это snipplet)- Вложения
-
- Data Processing.vi
- (909.36 КБ) 171 скачивание
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
Re: Чтение данных разного числового типа
Если данные записаны в файл лвэшной программой то свапирование делать не всегда нужно. И хоть предложенный тобой вариант более симпатичнее но вто же время не стоит забывать про Unflatten from string. Если данных много было бы не плох проверить оба эти варианта на скорость.
- Вложения
-
- ex6.JPG (9.34 КБ) 4833 просмотра
-
- leader
- Сообщения: 548
- Зарегистрирован: 20 авг 2009, 17:58
- Награды: 2
- Версия LabVIEW: 2011
- Контактная информация:
Re: Чтение данных разного числового типа
не забывайте только для type в type cast function задать representation I16 (defoult == I32)
We live in a graphical world.
Why not program in one?
Why not program in one?
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Чтение данных разного числового типа
записывает flattened данные в big-endian форме. (тяжелое наследие PowerPC Macintosh). Т.е. на PC, каждый раз при flattening байты меняются местами(чтение-запись бинарного файла итд). И при первом typecast байты тоже переставляютсяPavel писал(а):Если данные записаны в файл лвэшной программой
Да, забыл про вывод "Data inludes array or string size". Спасибо. так должно быть быстрееPavel писал(а):не стоит забывать про Unflatten from string
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
Re: Чтение данных разного числового типа
Вроде при записи в бинарный файл можно выбрать тип записи (big-endian или little-endian). На работе пробовал с 2 мб данных. Если результат (массив полученных значений) сразу выводить на экран то type cast чуточку побыстрее, надо было конечно попробовать с shift register но на тот момент не додумался.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Чтение данных разного числового типа
Можно сразу использовать Read Binary File. Там сверху задаёшь тип данных и готово.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Чтение данных разного числового типа
О, а так ещё проще и быстрее, собственно так и надо делать. На данном файле раза в 2.5 быстрее чем любой из вышеприведённых способов.eg писал(а):Можно сразу использовать Read Binary File. Там сверху задаёшь тип данных и готово.
Интересное дело, я решил померять сколько времени отнимает тот или иной способ преобразования. И получилось, что цепочка typecast-swap отнимает процентов на 10Pavel писал(а):то type cast чуточку побыстрее
меньше времени чем Unflatten from string. Это не зависит от версии (2009, 8.6) и от разрядности( 32bit, 64bit).
Это нелогично. Я открыл новый топик по этому поводу. (http://www.labviewportal.org/viewtopic. ... 67&start=0)
Я мерял вот такой программулькой (8.6):
- Вложения
-
- TestSpeed.vi
- (15.55 КБ) 166 скачиваний
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
- assistant
- Сообщения: 132
- Зарегистрирован: 23 ноя 2007, 16:44
- Награды: 1
- Версия LabVIEW: 7.1;8.5.1
- Откуда: Москва
- Благодарил (а): 2 раза
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 0 Ответы
- 506 Просмотры
-
Последнее сообщение Juri
-
- 3 Ответы
- 334 Просмотры
-
Последнее сообщение BAS
-
- 3 Ответы
- 878 Просмотры
-
Последнее сообщение IvanLis
-
- 13 Ответы
- 1230 Просмотры
-
Последнее сообщение Boxa
-
- 3 Ответы
- 272 Просмотры
-
Последнее сообщение AndreyDmitriev