Страница 1 из 1
Конвертация строки в массив byte, char
Добавлено: 12 дек 2020, 12:26
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
Конвертация строки в массив byte, char
Добавлено: 12 дек 2020, 14:35
ecoins
Сталкивался с подобной задачей, но с русским текстом.
В Arduino он в формате UTF-8. Соответственно каждый русский символ представлен двумя байтами (первый 0xCO и второй код символа).
Из-за этого при вычисление длины строки функцией str.length() длина удваивается на количество русских символов.
Пробовал вытаскивать из строки побайтно, но явно такой функции не обнаружил.
Таким образом, задача подсчитать правильно длину строки с русскими символами осталась нерешенной. Пришлось как-то на "полу-костылях" решать проблему.
Может у Вас есть идеи или решение такой задачи?
Конвертация строки в массив byte, char
Добавлено: 12 дек 2020, 16:05
Sancho
ecoins писал(а): 12 дек 2020, 14:35
Может у Вас есть идеи или решение такой задачи?
Может
пригодится.
Конвертация строки в массив byte, char
Добавлено: 12 дек 2020, 17:14
ecoins
Sancho писал(а): 12 дек 2020, 16:05
Может пригодится.
Спасибо. Знаком со статьей и понимаю её содержание. Так мы обрабатываем массив символов, размещенных в PROGMEM.
А вот как просто извлечь байт? Можно конечно переписать в массив, но по ощущениям должен быть метод попроще.
Конвертация строки в массив byte, char
Добавлено: 12 дек 2020, 18:20
aidar_i
ecoins писал(а): 12 дек 2020, 14:35
Таким образом, задача подсчитать правильно длину строки с русскими символами осталась нерешенной. Пришлось как-то на "полу-костылях" решать проблему.
Может у Вас есть идеи или решение такой задачи?
Здесь смотрели?
Считает правильно.
Конвертация строки в массив byte, char
Добавлено: 12 дек 2020, 19:12
Dryundel
ecoins писал(а): 12 дек 2020, 14:35
Пробовал вытаскивать из строки побайтно, но явно такой функции не обнаружил.
Таким образом, задача подсчитать правильно длину строки с русскими символами осталась нерешенной.
[ref]ecoins[/ref], задача решается. в три строки. И даже для Ё и ё. На днях же выкладывал
Длина строки RUS+ENG.
Неразрешенным остался только подсчет трех байтных символов, типа "№". Три дня ломал мозг. Не победил, сдался.

Конвертация строки в массив byte, char
Добавлено: 12 дек 2020, 20:23
ecoins
Dryundel писал(а): 12 дек 2020, 19:12
ecoins, задача решается. в три строки. И даже для Ё и ё. На днях же выкладывал Длина строки RUS+ENG.
Спасибо, как раз не хватало дойти до конструкции const char * data - изящно и просто.
Переделаю у себя - в нашей библиотеке сделано несколько мудренее.
Конвертация строки в массив byte, char
Добавлено: 12 дек 2020, 20:28
nalnik
ecoins писал(а): 12 дек 2020, 20:23
Переделаю
у себя -------
в нашей библиотеке -------
сделано несколько мудренее.
Веселый Вы человек!