2014-10-20 6 views
0

! enter image description hereX12 파일에서 GS06 세그먼트 읽기 C#

안녕하세요. 저는 EDI X12를 처음 사용합니다. 위의 이미지에서 빨간 밑줄이 그어진 GS 세그먼트 6 번째 필드 (GS06)를 읽는 작업이 있습니다. GS06의 값을 얻기 위해 C#으로 코딩하는 방법을 알려주십시오.

+0

왜 그룹 제어 번호를 찾아야합니까? GE 세그먼트에서이 동일한 값을 얻을 수도 있습니다. 귀하의 예제에서 ISA 제어 번호는 동일합니다 (0으로 채워짐). 거기에 문제가있는 것은 사실 일 수는 없지만 여기서 유스 케이스를 알아야합니다. – Andrew

답변

0

시작하려면 요소 구분 기호를 찾아야합니다. 귀하의 예에서는 별표입니다. 세그먼트 터미네이터는 물결 기호입니다.

ISA 세그먼트는 고정 길이입니다. 다른 세그먼트는 가변 길이입니다. 파서의 경우 특정 요소를 찾으려면 텍스트 파일을 읽고 세그먼트 료자를 기반으로 세그먼트를 파싱해야합니다. 그런 다음 원하는 세그먼트를 찾고 요소 구분 기호의 수를 파악하면 찾은 값을 얻을 수 있습니다.

예에서 GS OG 문자열은 일정합니다. 따라서 텍스트 파일을 읽을 수 있으며 ~ GS OG을 만나면 올바른 위치에 있다는 것을 알 수 있습니다. 구분 기호에 대한 지식을 사용하여 문자열에 있어야하는 위치로 이동하십시오.

또는 더 많은 매핑 옵션을 제공하는 상용 번역기를 사용하십시오.

1

먼저 전체 문서를 메모리에 넣기를 원합니다. 그런 다음 문자 106을 읽음으로써 세그먼트 구분 기호가 생깁니다. 또한 필드 구분 기호로 문자 4를 잡으십시오. 세그먼트 구분 기호를 기반으로 Splitstring을 호출하면 세그먼트의 배열이 생깁니다. 배열 [1] (앤드류 지적이나, 사용자가 "GS"& fieldDelim & "OG"로 시작하는 부분에 대해 구체적으로 확인할 수있다) 따라서

일반적 GS는 제 2 세그먼트이어야한다. 필드 구분 기호에 따라 Splitstring을 다시 수행하고 secondArray [5]는 GS06입니다.

0

첫 번째 줄을 배열에 넣으십시오 ('~'기호를 나눌 수 있습니다). 그러면 두 번째 줄이 GS 세그먼트가됩니다. 다시 GS 세그먼트를 배열로 분할합니다 (ypu는 '*'를 사용하여 분할 할 수 있습니다). GS 세그먼트 배열의 여섯 번째는 GS06이 될 것입니다. 이것 으로요. 마찬가지로 당신은 어떤 값을 얻을 수 있습니다.