【问题标题】:how should I interpret the MT940 specifications我应该如何解读 MT940 规格
【发布时间】:2016-01-15 15:48:37
【问题描述】:

我正在构建自己的 MT940 解析器,但遇到了一些似乎未指定的问题。

:61: 标记的规范声明它以可变数量的字符 (34x) 结尾。从示例文件中我看到他们可以在下一行继续。

例如:

:61:1510151015C54,01NTRFNONREF//15288910043499
/TRCD/00100/

如何确定下一行是新标签还是前一标签内容的延续。在行首寻找 :xx: 模式似乎是幼稚的,因为它可能会在内容实际包含该特定模式的异常情况下导致错误。

【问题讨论】:

    标签: mt940


    【解决方案1】:

    以 :61: 等标记开头的每一行都是格式中的新信息行。如果它不以这样的标签开头,那么它就是一个延续。

    不过是一句警告。 MT940 是一个标准,但每个银行都有细微的差异。所以它可能对一个人有效,但对另一个人无效。例如,一些规范有一个定义事务开始的标题,但其他规范没有。

    【讨论】:

    • 您是说提供消息的代码需要验证延续不是以这个“神奇”字符序列开头的吗?换句话说:代码看到延续包含 ':61:' 并且它会被放置在一行的开头,所以它会在字符串的另一个位置放置一个换行符?
    • 确实如此。如果该行不以 :nn: 开头,那么它是一个延续。您可以简单地从上到下解析它并检查下一行。
    • 这将使它成为一个非常糟糕的协议(根据该字符串的内容确定字符串中换行符的位置),但是查看我读过的所有信息,您可能是对的.
    • 确实如此。如果你有可能切换格式,你应该看看 camt.053。我不知道您为什么要编写自己的解析器,或者您正在编写什么语言,但是有现有的解决方案,例如bitbucket.org/raptux/sharpmt940lib
    猜你喜欢
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 2013-11-08
    相关资源
    最近更新 更多