Вверх ↑
Этот топик читают: Гость
Ответов: 6
Рейтинг: 0
#1: 2016-06-24 14:07:44 ЛС | профиль | цитата
Здравствуйте, уважаемые форумчане!
Как сделать выборку отдельных символов в одной строке, расположенной, к примеру, в редакторе текста Memo???
Имеем дело вот с чем - имеется счетчик частиц подключенный к ПК по USB-COM, необходимо написать приложение для запуска процесса измерения и соответственно получения результатов произведенного измерения. От производителя получил только - команду, которую надо посылать в порт (0x01) и то, в какой форме должен приходить ответ от прибора. С этим проблем не возникло, все получилось, прибор по нажатию кнопки в приложении начинает измерение, по прошествии фиксированного времени в поле Memo получаю ответ в HEX виде.
Далее мне необходимо перевести это все в человеческий вид по формуле (0х55/0х100+0хCB/0х10000+0х34/0х1000000)*2^0хOE.
Вот так выглядит ответ от прибора в HEX виде: FFFFFF55CB340E544D950D77E99A0A4A333207, для приведенной выше формулы мне надо выбрать по очереди "55", "СВ", "34" и "0Е", чтобы преобразовать результаты в нормальный вид так сказать ))
Но как мне произвести эту самую выборку ну никак не пойму, пожалуйста не судите строго, второй день уже голову ломаю...

П.С. в поле Memo ответ почему то приходит без "0х".


карма: 1

0
Ответов: 4628
Рейтинг: 749
#2: 2016-06-24 14:30:11 ЛС | профиль | цитата
code_37371.txt

dkod писал(а):
в поле Memo ответ почему то приходит без "0х"
0x - просто приставка, обозначающая для читателя, что данные находятся в шестнадцатеричном формате (системе счисления, HEX). Могут быть и другие, например, $A356FF00, #56FF00, или A356FF00h

карма: 26

0
файлы: 1code_37371.txt [723B] [532]
Ответов: 6
Рейтинг: 0
#3: 2016-06-24 14:41:04 ЛС | профиль | цитата
Netspirit писал(а):
спасибо, это я понимаю, для меня главное - как же сделать выборку определенного символа в строке, например надо вытащить 7й и 8й символ из строки, чтобы потом вставить их в формулу...
карма: 1

0
Ответов: 4628
Рейтинг: 749
#4: 2016-06-24 14:47:43 ЛС | профиль | цитата
В какую формулу? Ту, что ты выше написал? А что она должна делать?
code_37372.txt
карма: 26

0
файлы: 1code_37372.txt [1.5KB] [475]
Ответов: 497
Рейтинг: 16
#5: 2016-06-24 14:51:24 ЛС | профиль | цитата
code_37373.txt

карма: 1
        ]  
0
файлы: 1code_37373.txt [1.2KB] [285]
Ответов: 6
Рейтинг: 0
#6: 2016-06-24 14:51:28 ЛС | профиль | цитата
Netspirit писал(а):
вначале "FFFFFF" это заголовок. Затем "55CB340E" это данные по первому каналу измерения в hex виде. Чтобы перевести в читабельный норм вид идет данная формула, полученная от производителя прибора. Прибор - счетчик частиц, измеряет количество частиц в помещении.
карма: 1

0
Ответов: 8918
Рейтинг: 823
#7: 2016-06-24 15:29:40 ЛС | профиль | цитата
dkod, (0х55/0х100+0хCB/0х10000+0х34/0х1000000)*2^0хOE = ( 85/256 + 110/65536 + 52/16777216 )*2^14 = 5440 + 27.5 + 0.05078125 = 5467.55078125
Так что-ли? Хотя число частиц должно быть целым по определению
Приведённая вами строка кроме стартовых FFFFFF содержит четыре числа, каждое из которых имеет по 8 шестнадцатеричных символов?

карма: 19

0
Ответов: 6
Рейтинг: 0
#8: 2016-06-24 15:34:50 ЛС | профиль | цитата
Леонид писал(а):
Да, Леонид, все все верно. Но там на деле таких "каналов" 12 приходит по 4 числа. Сам прибор на своем жк дисплее округляет значения ))
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#9: 2016-06-24 17:38:47 ЛС | профиль | цитата
code_37374.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_37374.txt [469B] [380]
Ответов: 8918
Рейтинг: 823
#10: 2016-06-24 21:18:47 ЛС | профиль | цитата
dkod, без округления
карма: 19

0
файлы: 1dust_particles.rar [2.7KB] [368]
Ответов: 16884
Рейтинг: 1239
#11: 2016-06-24 23:50:54 ЛС | профиль | цитата
dkod, с округлением.
code_37377.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_37377.txt [1.3KB] [380]
Ответов: 8918
Рейтинг: 823
#12: 2016-06-25 00:49:58 ЛС | профиль | цитата
Tad, раз пошла такая пьянка, режь последний огурец! (Только у ТС MemFifo нет ) code_37378.txt
карма: 19

0
файлы: 1code_37378.txt [1.4KB] [485]
Ответов: 16884
Рейтинг: 1239
#13: 2016-06-25 09:37:37 ЛС | профиль | цитата
Леонид
1. Ночью спать надо.
2. Мы не в бане. Тут выигрывает - у кого меньше.
3. MemFifo есть на SVN.
code_37379.txt

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_37379.txt [1.1KB] [426]
Ответов: 8918
Рейтинг: 823
#14: 2016-06-25 11:08:05 ЛС | профиль | цитата
Tad, наверное патроны не той системы
32нолика.jpg
карма: 19

0
файлы: 132нолика.jpg [48.2KB] [728]
Ответов: 16884
Рейтинг: 1239
#15: 2016-06-25 12:07:39 ЛС | профиль | цитата
leonid_3.png
Нужен третий.
Или обновить Str_Enum
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1leonid_3.png [29.3KB] [593]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)