每次打開串行端口時都會收到以下字符串,該字符串用於檢查連接的設備正在運行的bios版本和固件版本。從字符串中篩選開始和結束字符
字符串:
v03400216000000001FC5H240108206B-RAMBOX=[03]
現在檢查BIOS版本和固件版本唯一重要charachters如下:
03400216
注:bytearray
轉換爲string
一個byte[]
和填充附:
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
的?
編輯:
@lazyberezovsky幫了我,我只是忘了.Substring()
。
if (bytearray.Contains("RAMBOX"))
{
string Versionstring = bytearray.Substring(1, 8);
bytearray = Versionstring;
}
這取決於,它會**總是**在最初的'v'之後有8個字符嗎?或者它可以改變? – freefaller 2013-03-11 10:54:18
輸入字符串總是這麼長,是的,我需要的字符總是字符1到9 – Max 2013-03-11 10:55:18