gpt4 book ai didi

parsing - 读取 EDI 格式的文件

转载 作者:行者123 更新时间:2023-12-03 23:44:49 25 4
gpt4 key购买 nike

我是 EDI 的新手,我有一个问题。

我已经读过,通过查看 ISA 行的最后 3 个字符,您可以获得有关 EDI 格式的大部分信息。如果每个 EDI 都使用换行符来分隔实体,这很好,但我发现许多是单行文件,其中包含任意数量的字符用作换行符。我注意到我解析的每个 EDI 中的最后一个字符是中断字符。我看了几百个,没有发现任何异常(exception)。如果我首先获取该字符,并使用它来获取 ISA 行的最后 3 个,我是否应该合理地期望我能够解析来自 EDI 的数据?

我不知道这是否有帮助,但有问题的 EDI“类型”往往是 850、875。我不确定这是否是标准,但可能值得一提。

最佳答案

edi 的交易类型并不重要(850 = 订单,875 = 杂货店 po)。写了一些 edi 解析器后,我发现了一些东西:

您应该能够指望 ISA(仅 ISA)是固定宽度的(如果没记错的话,105 个字符)。
去掉前 105 个字符。在此之后和第一次出现“GS”之前的所有内容都是您的行终止符(这可以是任何内容,包括 0x07 - 哔声 - 所以请注意您是否正在输出到标准输出进行调试,否则您可能会听到一堆哔哔声出喇叭)。通常这是 1 或 2 个字符,有时可能更多(如果向您发送数据的人出于某种原因添加了额外的终止符)。一旦有了行终止符,就可以获得段(字段)分隔符。我通常拉出 GS 行的 3 个字符并使用它,尽管 ISA 行的第 4 个字符也应该可以工作。

还请注意,您可以获得一个包含多个 ISA 的文件。在这种情况下,您不能指望每个 ISA 中的行或字段分隔符都相同。

另一件事.. edi 文件也有可能(同样,不确定它的规范)具有可变长度的 ISA。这是非常罕见的,但我不得不适应它。如果发生这种情况,您必须将该行解析为其字段。 ISA 中的最后一个字段只有一个字符长,因此您可以从中确定 ISA 的实际长度。如果是我,我不会担心这个,除非你看到类似的文件。这是一种罕见的情况。

我上面所说的可能不是“规范”的字母......也就是说,我不确定在同一个文件中使用不同的行分隔符是否合法,但在不同的 ISA 中,但在技术上是可能的我适应它,因为我必须处理以这种方式通过的文件。我使用的 edi 处理器每天处理超过 5000 个文件,有超过 3000 个可能的数据源(所以我看到了很多奇怪的东西)。

最好的祝福,
大学教师

关于parsing - 读取 EDI 格式的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2117897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com