Я получаю следующую строку каждый раз, когда я открываю последовательный порт, эта строка предназначена для проверки версии BIOS и версии прошивки подключенного устройства.Фильтровать начальные и конечные символы из строки
Строка:
v03400216000000001FC5H240108206B-RAMBOX=[03]
Теперь единственное важное charachters для проверки версии Bios и версии прошивки являются следующим:
03400216
Примечания: bytearray
является byte[]
преобразуется в string
и заполненном с:
v03400216000000001FC5H240108206B-RAMBOX=[03]
Я попытался достичь этого, используя следующий код:
string versiontext = bytearray.Trim();
bytearray = versiontext.Remove(0, 2);
versiontext = bytearray.Remove(9, bytearray.Length);
bytearray = versiontext;
Но это не сработало, и в результате, за исключением следующего:
Index and count must refer to a location within the string.
Должен ли я использовать Regex
, Вместо .Remove
?
EDIT:
@lazyberezovsky помог мне, я просто забыл о .Substring()
.
Я достиг string result
со следующим кодом:
if (bytearray.Contains("RAMBOX"))
{
string Versionstring = bytearray.Substring(1, 8);
bytearray = Versionstring;
}
Это зависит, будет ли он ** всегда ** быть 8 символами после первоначального 'v'? Или это может измениться? – freefaller
Входная строка всегда такая длинная, и да символы, в которых я нуждаюсь, всегда являются символами от 1 до 9 – Max