클래스의 목록으로 분할하고자하는 데이터 문자열을 가지고 모든 데이터를 생성자의 여러 속성으로 구문 분석합니다. 각 블록은 STX 문자로 시작하고 문자열 "PLC"로 끝납니다 (나는 왜 공급 업체가 ETX를 사용하지 않았는지 알지 못합니다)문자열을 목록으로 분할하기 (Of T)
문자열 datastream을 취하는 어떤 것이 기본적으로 문자열 "PLC"
STX1;0;0;0;0;1;0;0;0;0;0;+3272;-2145;+3273;-2145;PLC\r\nSTX1;0;0;0;0;1;0;0;0;0;0;+3276;-2145;+3272;-2145;PLC\r\nSTX1;0;0;0;0;1;0;0;0;0;0;+3281;-2145;+3272;-2145;PLC\r\n
및() dataclass의 목록에 세 가지 항목을 초래할 것 : 그것을 유지)와() dataClass의 데이터 목록에 넣는다
데이터 스트림은 다음과 같습니다
STX1;0;0;0;0;1;0;0;0;0;0;+3272;-2145;+3273;-2145;PLC
STX1;0;0;0;0;1;0;0;0;0;0;+3276;-2145;+3272;-2145;PLC
STX1;0;0;0;0;1;0;0;0;0;0;+3281;-2145;+3272;-2145;PLC
나는 보았고 일반적으로 문자열 분리에 관한 많은 정보를 찾았지만 클래스 나 목록에 넣는 것에 대해서는 아무것도 발견하지 못했습니다. 난 그냥 같은 것을 할 수있는 확신 :
dim datalist as list(of dataclass)
dim splitdata() as string = datastream.split("PLC")
for each data as string in splitdata
datalist.Add(new dataclass(data))
next
하지만 난 아마 정규 표현식 또는 LINQ를 사용하지만 나도 정말 familary 아니에요 (더 efficant 방법이있을거야
감사한다. ! 전진
당신이 원하는 객체의 입력 문자열과 출력을 가지고 있다면 도움이 될 것입니다. – Magnus
요청한 정보를 추가했습니다. – BinaryDuck