【问题标题】:Reading GS06 Segment from a X12 File using c#使用 c# 从 X12 文件中读取 GS06 段
【发布时间】:2014-12-14 23:03:13
【问题描述】:

!

大家好。我是 EDI X12 的新手。我的任务是读取上图中红色下划线的 GS Segment 6th field(GS06)。请帮助我如何在 c# 中编码以获得 GS06 的值

【问题讨论】:

  • 为什么要找群控号?您也可以从 GE 细分市场获得相同的值。在您的示例中,ISA 控制编号是相同的(尽管用零填充)。那里的问题可能并不总是正确的,但我需要在这里了解您的用例。

标签: c# edi x12


【解决方案1】:

首先,您需要内存中的完整文档。 然后,通过读取字符 106,您将获得段分隔符。还要抓取字符 4 作为字段分隔符。 根据段分隔符调用Splitstring,你会得到一个段数组。

通常,GS 应该是第二个段,因此 array[1](或者,正如 Andrew 指出的那样,您可以专门检查以“GS”和 fieldDelim 和“OG”开头的段)。 根据您的字段分隔符再次拆分字符串,而 secondArray[5] 是您的 GS06。

【讨论】:

    【解决方案2】:

    首先,您需要找到元素分隔符。在您的示例中,它是星号。您的段终止符是波浪号。

    ISA 段是固定长度的。其他段是可变长度的。对于您的解析器,要查找特定元素,您应该读取文本文件,并根据段终止符解析段。之后,您可以找到您要查找的段,计算出元素分隔符的数量,然后您就有了找到的值。

    在您的示例中,GSOG 字符串将是常量。因此,您可以阅读文本文件,当您遇到 ~GSOG 时,您就知道您在正确的位置。使用您对分隔符的了解将您带到您需要在字符串中的位置。

    或者使用可以为您提供更多映射选项的商业翻译器。

    【讨论】:

      【解决方案3】:

      首先将每一行放入数组(可以拆分'〜'符号),这样第二行将是GS段。然后再次将GS段拆分为数组(ypu可以使用'*'拆分)。 GS段数组的第六个将是GS06。试试这个。同样你可以得到任何值。

      【讨论】:

        猜你喜欢
        • 2013-07-07
        • 2015-09-06
        • 1970-01-01
        • 2013-01-16
        • 2016-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-02
        相关资源
        最近更新 更多