У меня есть проблема, которая мучает много часов.Мне нужно иметь возможность найти первое ненулевое значение в массиве (принимая во внимание, что после этого могут быть нули).
Так что если:
A [0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 48, 24, 0, 0, 18, 9, 9, 7, 8, 0];
Как мне установитьпеременная скажем, int origin;равный 9, такой, что A [origin] = 16?
Моя настоящая проблема более сложна, чем эта, но это, по сути, упрощенная версия того, что застряло у меня.Я на самом деле работаю с устройством Bluetooth, которое выводит сектора по 512 байт, однако каждый байт в этом секторе представляет разные вещи.Итак, я сделал цикл for для извлечения байта с номером 224, который мне интересен, затем я создал массив значений 224 для каждого сектора.Хотя все другие байты в секторе содержат данные, этот конкретный байт не начинает передачу намного позже.Поскольку я хочу анализировать данные, мне нужно знать, в каком секторе они начинают приносить пользу.Следовательно, у меня есть вопрос выше.Вся эта информация совершенно не имеет отношения к вопросу, но я предоставил ее для справки.
Кроме того, и если вы действительно хотите получить ответ, мне нужно вывести номер байта 224 как "широта", байт 225 как «долгота» и байт 226 как «угол места» (для GPS) в формате xml.Любые идеи о том, как я бы вывести свои трехбайтовые массивы в формате XML?Я читал, что они должны быть сначала в строковой форме, но это легко:
string [] Lat = new string [Sectors];
for (int i = 0, i < sectors; i++)
{
Lat[i] = A[i].ToString();
}
В конце я бы хотел получить это в результате.
<document>
<point lat = "50.0" lon = "-60.5" ele = "605">
<time> 16:54:08 </time>
</point>
<point .... etc
</document>
Надеюсь, я дал вамдостаточно информации, и я буду полезен для любой помощи.ура всем!Кстати, весь код должен быть на C #, и я использую Visual C # 2010 Express.