Конвертация строки в массив byte, char

Пользовательские блоки для конвертации различных типов данных, а так-же шифрования и дешифровки
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 12 раз
Поблагодарили: 100 раз
Контактная информация:

Конвертация строки в массив byte, char

Сообщение aidar_i »

Создал ПБ конвертации строки в массив byte: byte byteArray[MaxByteArraySize] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
Создан для применения с MAC адресом или IP , и тп.
По умолчанию конвертация MAC адреса.
Данный ПБ можно использовать самостоятельно, внеся изменения в ПБ, с которым он используется в проекте (в описании).
Или встроить в создаваемые ПБ, где нужно вводить МАС адрес или IP или другое со входа блока.
Описание в ПБ.
Перевод_строки_в_массив_byte_(Code_-_Basic).ubi
Пример применения ПБ здесь.

Создал ПБ конвертации строки в массив char : char char_array[ArraySize] = " Text_String";
Данный ПБ можно использовать самостоятельно, внеся изменения в ПБ, с которым он используется в проекте (в описании).
Или встроить в создаваемые ПБ, где нужно вводить строку со входа блока (особенно для дисплеев).
Перевод_строки_в_массив_char_(Code_-_Basic).ubi
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 3999
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 136 раз
Поблагодарили: 149 раз

Конвертация строки в массив byte, char

Сообщение ecoins »

Сталкивался с подобной задачей, но с русским текстом.
В Arduino он в формате UTF-8. Соответственно каждый русский символ представлен двумя байтами (первый 0xCO и второй код символа).
Из-за этого при вычисление длины строки функцией str.length() длина удваивается на количество русских символов.
Пробовал вытаскивать из строки побайтно, но явно такой функции не обнаружил.
Таким образом, задача подсчитать правильно длину строки с русскими символами осталась нерешенной. Пришлось как-то на "полу-костылях" решать проблему.
Может у Вас есть идеи или решение такой задачи?
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Конвертация строки в массив byte, char

Сообщение Sancho »

ecoins писал(а): 12 дек 2020, 14:35 Может у Вас есть идеи или решение такой задачи?
Может пригодится.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
ecoins
Полковник
Сообщения: 3999
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 136 раз
Поблагодарили: 149 раз

Конвертация строки в массив byte, char

Сообщение ecoins »

Sancho писал(а): 12 дек 2020, 16:05 Может пригодится.
Спасибо. Знаком со статьей и понимаю её содержание. Так мы обрабатываем массив символов, размещенных в PROGMEM.
А вот как просто извлечь байт? Можно конечно переписать в массив, но по ощущениям должен быть метод попроще.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 12 раз
Поблагодарили: 100 раз
Контактная информация:

Конвертация строки в массив byte, char

Сообщение aidar_i »

ecoins писал(а): 12 дек 2020, 14:35 Таким образом, задача подсчитать правильно длину строки с русскими символами осталась нерешенной. Пришлось как-то на "полу-костылях" решать проблему.
Может у Вас есть идеи или решение такой задачи?
Здесь смотрели?
Считает правильно.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

Конвертация строки в массив byte, char

Сообщение Dryundel »

ecoins писал(а): 12 дек 2020, 14:35 Пробовал вытаскивать из строки побайтно, но явно такой функции не обнаружил.
Таким образом, задача подсчитать правильно длину строки с русскими символами осталась нерешенной.
[ref]ecoins[/ref], задача решается. в три строки. И даже для Ё и ё. На днях же выкладывал Длина строки RUS+ENG.
Неразрешенным остался только подсчет трех байтных символов, типа "№". Три дня ломал мозг. Не победил, сдался. :)
ecoins
Полковник
Сообщения: 3999
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 136 раз
Поблагодарили: 149 раз

Конвертация строки в массив byte, char

Сообщение ecoins »

Dryundel писал(а): 12 дек 2020, 19:12 ecoins, задача решается. в три строки. И даже для Ё и ё. На днях же выкладывал Длина строки RUS+ENG.
Спасибо, как раз не хватало дойти до конструкции const char * data - изящно и просто.
Переделаю у себя - в нашей библиотеке сделано несколько мудренее.
Аватара пользователя
nalnik
Подполковник
Сообщения: 1320
Зарегистрирован: 14 май 2016, 17:12
Откуда: Кисловодск
Имя: Александр

Конвертация строки в массив byte, char

Сообщение nalnik »

ecoins писал(а): 12 дек 2020, 20:23 Переделаю у себя ------- в нашей библиотеке ------- сделано несколько мудренее.
Веселый Вы человек!
Я хочу быть добрее, но люди сами нарываются.
Ответить

Вернуться в «Конвертация типов, шифраторы и дешифраторы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей