【发布时间】:2014-12-14 23:03:13
【问题描述】:
!
大家好。我是 EDI X12 的新手。我的任务是读取上图中红色下划线的 GS Segment 6th field(GS06)。请帮助我如何在 c# 中编码以获得 GS06 的值
【问题讨论】:
-
为什么要找群控号?您也可以从 GE 细分市场获得相同的值。在您的示例中,ISA 控制编号是相同的(尽管用零填充)。那里的问题可能并不总是正确的,但我需要在这里了解您的用例。
!
大家好。我是 EDI X12 的新手。我的任务是读取上图中红色下划线的 GS Segment 6th field(GS06)。请帮助我如何在 c# 中编码以获得 GS06 的值
【问题讨论】:
首先,您需要内存中的完整文档。 然后,通过读取字符 106,您将获得段分隔符。还要抓取字符 4 作为字段分隔符。 根据段分隔符调用Splitstring,你会得到一个段数组。
通常,GS 应该是第二个段,因此 array[1](或者,正如 Andrew 指出的那样,您可以专门检查以“GS”和 fieldDelim 和“OG”开头的段)。 根据您的字段分隔符再次拆分字符串,而 secondArray[5] 是您的 GS06。
【讨论】:
首先,您需要找到元素分隔符。在您的示例中,它是星号。您的段终止符是波浪号。
ISA 段是固定长度的。其他段是可变长度的。对于您的解析器,要查找特定元素,您应该读取文本文件,并根据段终止符解析段。之后,您可以找到您要查找的段,计算出元素分隔符的数量,然后您就有了找到的值。
在您的示例中,GSOG 字符串将是常量。因此,您可以阅读文本文件,当您遇到 ~GSOG 时,您就知道您在正确的位置。使用您对分隔符的了解将您带到您需要在字符串中的位置。
或者使用可以为您提供更多映射选项的商业翻译器。
【讨论】:
首先将每一行放入数组(可以拆分'〜'符号),这样第二行将是GS段。然后再次将GS段拆分为数组(ypu可以使用'*'拆分)。 GS段数组的第六个将是GS06。试试这个。同样你可以得到任何值。
【讨论】: