массив в byte [] массив - PullRequest
       3

массив в byte [] массив

0 голосов
/ 02 февраля 2012

хорошо, я знаю, что это было избито до смерти, но я не могу получить все, чтобы получить их на Google здесь или в любом месте, чтобы работать

У меня есть строка, которая выглядит следующим образом

1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

я храню эту строку

каждая цифра имеет диапазон от 0 до 254, и строка является почти случайной мне нужно преобразовать это в байтовый массив из-за оборудования менять это то, что аппаратное обеспечение ищет

hardware.command(DeviceID, byte[]);

Я проверил оборудование, выполнив это

hardware.command(1, new byte[] { 0, 0, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38 });

и все было хорошо

каждая часть представляет собой выходной ШИМ-процент на оборудовании он обновляется каждые 4 мс, поэтому он должен быть немного быстрым

Ответы [ 3 ]

2 голосов
/ 02 февраля 2012

Я не знаю, удовлетворяет ли это вашим требованиям к производительности, но самый простой способ - использовать LINQ:

var myByteArray = (from s in myString.Split(',') select byte.Parse(s)).ToArray();

РЕДАКТИРОВАТЬ: Первоначально я написал byte.Parse(s.Trim()), но Byte.Parse не против окружающих пробелов.

1 голос
/ 02 февраля 2012
String[] substringArray = String.Split(',');
List<Bytes> listOfBytes = new List<Bytes>();
foreach(String substring in substringArray )
{
    substring = substring.Trim();
    listOfBytes.Add(Byte.Parse(substring));
}
Byte [] byteTable = listOfBytes.ToArray();
1 голос
/ 02 февраля 2012

Попробуйте что-то вроде этого:

string datastring = "1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0";
byte[] data = datastring.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(s => byte.Parse(s)).ToArray();

или без LINQ:

    var datastring = "1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0";
    var tokens = datastring.Split(',');
    byte[] data = new byte[tokens.Length];
    for (int i = 0; i < tokens.Length; i++) {
        data[i] = byte.Parse(tokens[i]);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...