직렬 포트를 열 때마다 다음 문자열이 표시됩니다.이 문자열은 연결된 장치가 실행중인 BIOS 버전과 펌웨어 버전을 확인하기위한 것입니다.문자열의 시작과 끝 문자를 필터링합니다.
문자열 :
이제 바이오스 버전과 펌웨어 버전을 확인하는 유일한 중요한 charachters은 다음과 같다v03400216000000001FC5H240108206B-RAMBOX=[03]
:
이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.
내가 대신 .Remove
의하는 Regex
사용해야합니까?
@lazyberezovsky은, 저를 도와 그냥 .Substring()
에 대해 잊어 버렸습니다.
if (bytearray.Contains("RAMBOX"))
{
string Versionstring = bytearray.Substring(1, 8);
bytearray = Versionstring;
}
에 따라 달라질 수 있습니다 ** 항상 ** 초기 v 이후 8 자입니까? 아니면 달라질 수 있습니까? – freefaller
입력 문자열은 항상 길고 그렇습니다. 필요한 문자는 항상 1에서 9 문자입니다. – Max