powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Строковый массив в байт массив.
25 сообщений из 31, страница 1 из 2
Строковый массив в байт массив.
    #39795253
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При конвертации
Код: c#
1.
2.
3.
4.
5.
string data;

string[] str_data = data.Split(split_params, StringSplitOptions.RemoveEmptyEntries);

byte[] byte_data = Array.ConvertAll(str_data, byte.Parse);



получаю на Array.ConvertAll(str_data, byte.Parse); - Input string was not in a correct format.

Что ему не нравиться?
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795259
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что string это не массив байт, а строка в UTF-16. Для перевода в байты надо задавать кодировку, для этого есть класс Encoding. Пример
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795260
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем так сложно?
чем конвертор не угодил?

Код: c#
1.
byte[] bytes = Encoding.ASCII.GetBytes(someString)
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795265
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TПотому что string это не массив байт, а строка в UTF-16. Для перевода в байты надо задавать кодировку, для этого есть класс Encoding. Пример
это если строка. а у меня в строке чары разделены пробелом. поэтому я делаю сплит по пробелам и получаю строковый массив. а его уже я хочу перевести в байты.
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795266
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneзачем так сложно?
чем конвертор не угодил?

Код: c#
1.
byte[] bytes = Encoding.ASCII.GetBytes(someString)


это строка. а у меня масив строк.
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795271
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7Dima TПотому что string это не массив байт, а строка в UTF-16. Для перевода в байты надо задавать кодировку, для этого есть класс Encoding. Пример
это если строка. а у меня в строке чары разделены пробелом. поэтому я делаю сплит по пробелам и получаю строковый массив. а его уже я хочу перевести в байты.
В C# string это массив char , и char это не знаковый byte как в С++.
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795272
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
string[] str = data.Split(split_params, StringSplitOptions.RemoveEmptyEntries);
byte[] byte_data = str.Select(byte.Parse).ToArray();
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795275
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima Tjenya7пропущено...

это если строка. а у меня в строке чары разделены пробелом. поэтому я делаю сплит по пробелам и получаю строковый массив. а его уже я хочу перевести в байты.
В C# string это массив char , и char это не знаковый byte как в С++.

так я хочу перевести массив char в массив byte. мне это нужно потому что дальше методы принимают массив byte в качестве аргумента.
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795277
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One
Код: c#
1.
2.
string[] str = data.Split(split_params, StringSplitOptions.RemoveEmptyEntries);
byte[] byte_data = str.Select(byte.Parse).ToArray();


то же самое - ругается - Input string was not in a correct format.
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795280
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значит читайте ссылки про Encoding, кто ж значет что за символы вы там сплитите
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795286
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7дальше методы принимают массив byte вне твои методы? Не переделать?
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795288
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneзначит читайте ссылки про Encoding, кто ж значет что за символы вы там сплитите

я получаю строку "55 50 21 0 0 0 0 0 0 89 D3 E 0 1 2 3 4 5 6 7 8 28 65 "
из нее мне нужно получить byte[] byte_data = {55,50,21,0,0,0,0,0,0,89,D3,E,0,1,2,3 4,5 6,7,8,28,65 };

все так плохо с дот нет?
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795289
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123jenya7дальше методы принимают массив byte вне твои методы? Не переделать?
если дот нет не справиться с переводом одного массива в другой - переделаю. :)
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795291
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, это плохо у тебя с пониманием, что такое строка символов.

CHAR(0) - это конец строки NULL-char
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795307
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7если дот нет не справиться с переводом одного массива в другой - переделаю. :)а причем тут не справится?
Передача в байтах это транспортный уровень. А строки в бизнес логике.
А мешанина это говнокод.
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795338
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7все так плохо с дот нет?
Всё так плохо у некоторых писателей, которые по совместительству не читатели документации. С какого перепугу byte.Parse должен парсить без доп. указаний строку 16-ричного представления? Для этого есть отдельные перегрузки метода .
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795346
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
string input =  "55 50 21 0 0 0 0 0 0 89 D3 E 0 1 2 3 4 5 6 7 8 28 65";
byte[] byte_data = input.Split().Select(s => Convert.ToByte(s, 16)).ToArray();



это что ли надо?
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795374
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One
Код: c#
1.
2.
string input =  "55 50 21 0 0 0 0 0 0 89 D3 E 0 1 2 3 4 5 6 7 8 28 65";
byte[] byte_data = input.Split().Select(s => Convert.ToByte(s, 16)).ToArray();



это что ли надо?
получаю 'Index was out of range. Must be non-negative and less than the size of the collection.'
я посмотрел что после сплита по пробелам в некоторых местах остаются \r \n, так как была новая строка. наверное из за этого byte.Parse падает.
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795375
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jenya7Konst_One
Код: c#
1.
2.
string input =  "55 50 21 0 0 0 0 0 0 89 D3 E 0 1 2 3 4 5 6 7 8 28 65";
byte[] byte_data = input.Split().Select(s => Convert.ToByte(s, 16)).ToArray();



это что ли надо?
получаю 'Index was out of range. Must be non-negative and less than the size of the collection.'
я посмотрел что после сплита по пробелам в некоторых местах остаются \r \n, так как была новая строка. наверное из за этого byte.Parse падает.
то есть строка может быть string input = "55 50 21 0 0 0 0 0 0\r 89 D3 E 0 1 2 3 4 5 6 7 8 28 65\n";
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795377
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
знатный говнокод у автора, без обид, но это факт
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795386
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesзнатный говнокод у автора, без обид, но это факт
не стреляйте в пианиста, он играет как умеет
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795397
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>jenya7, сегодня, 15:41 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1310953&msg=21850233][21850233]
>Что ему не нравиться?
<Посмотри здесь
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795501
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеев>jenya7, сегодня, 15:41 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1310953&msg=21850233][21850233]
>Что ему не нравиться?
<Посмотри здесь
спасибо
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795533
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблема решилась довольно просто
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
char[] split_params = { ' ', '\r', '\n' };
NumberStyles style = NumberStyles.HexNumber;

string[] str_data = data.Split(split_params, StringSplitOptions.RemoveEmptyEntries);

byte[] byte_data = new byte[str_data.Length];

for (int i = 0; i < str_data.Length; i++)
{
     byte_data[i] = byte.Parse(str_data[i],  style);
}
...
Рейтинг: 0 / 0
Строковый массив в байт массив.
    #39795571
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7проблема решилась довольно просто
Всегда пожалуйста.
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Строковый массив в байт массив.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]