Страница 1 из 1

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

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

Создал ПБ конвертации строки в массив char : char char_array[ArraySize] = " Text_String";
Данный ПБ можно использовать самостоятельно, внеся изменения в ПБ, с которым он используется в проекте (в описании).
Или встроить в создаваемые ПБ, где нужно вводить строку со входа блока (особенно для дисплеев).

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

Добавлено: 12.12.2020{, 14:35}
ecoins
Сталкивался с подобной задачей, но с русским текстом.
В Arduino он в формате UTF-8. Соответственно каждый русский символ представлен двумя байтами (первый 0xCO и второй код символа).
Из-за этого при вычисление длины строки функцией str.length() длина удваивается на количество русских символов.
Пробовал вытаскивать из строки побайтно, но явно такой функции не обнаружил.
Таким образом, задача подсчитать правильно длину строки с русскими символами осталась нерешенной. Пришлось как-то на "полу-костылях" решать проблему.
Может у Вас есть идеи или решение такой задачи?

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

Добавлено: 12.12.2020{, 16:05}
Sancho
ecoins писал(а):
12.12.2020{, 14:35}
Может у Вас есть идеи или решение такой задачи?
Может пригодится.

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

Добавлено: 12.12.2020{, 17:14}
ecoins
Sancho писал(а):
12.12.2020{, 16:05}
Может пригодится.
Спасибо. Знаком со статьей и понимаю её содержание. Так мы обрабатываем массив символов, размещенных в PROGMEM.
А вот как просто извлечь байт? Можно конечно переписать в массив, но по ощущениям должен быть метод попроще.

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

Добавлено: 12.12.2020{, 18:20}
aidar_i
ecoins писал(а):
12.12.2020{, 14:35}
Таким образом, задача подсчитать правильно длину строки с русскими символами осталась нерешенной. Пришлось как-то на "полу-костылях" решать проблему.
Может у Вас есть идеи или решение такой задачи?
Здесь смотрели?
Считает правильно.

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

Добавлено: 12.12.2020{, 19:12}
Dryundel
ecoins писал(а):
12.12.2020{, 14:35}
Пробовал вытаскивать из строки побайтно, но явно такой функции не обнаружил.
Таким образом, задача подсчитать правильно длину строки с русскими символами осталась нерешенной.
ecoins, задача решается. в три строки. И даже для Ё и ё. На днях же выкладывал Длина строки RUS+ENG.
Неразрешенным остался только подсчет трех байтных символов, типа "№". Три дня ломал мозг. Не победил, сдался. :)

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

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

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

Добавлено: 12.12.2020{, 20:28}
nalnik
ecoins писал(а):
12.12.2020{, 20:23}
Переделаю у себя ------- в нашей библиотеке ------- сделано несколько мудренее.
Веселый Вы человек!