问题标签 [mt940]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1713 浏览

ruby - 解析具有嵌套信息结构的纯文本文件的最佳方法

文本文件有数百个这样的条目(格式为 MT940 银行对账单)

这应该进入一个哈希数组,如

我用树顶尝试过,但它似乎不是正确的方法,因为它更适合你想要进行计算的东西,我只想要信息。

我也尝试使用正则表达式

但是递归很困难......

我怎么解决这个问题?

0 投票
2 回答
7332 浏览

python - MT940 格式解析器

你能推荐任何操作系统,即用型,有据可查且未死的 Python MT940 格式解析器吗?

0 投票
1 回答
2775 浏览

php - 在 PHP 中解析结构化文本数据

我正在寻找各种(更好的)方法来解析 PHP 中的结构化文本数据并将该数据放入 PHP 对象图中。我在 PHP 中看到了许多不同的解析器,用于各种基于文本的文件格式,但几乎所有这些解析器似乎都是一些脆弱的正则表达式链。一定会有更好的办法!

在这种特定情况下,我希望解析 MT940 文件(银行账户交易)。但是我在其他文件格式上也遇到了同样的问题。我总是会得到一大串正则表达式,维护起来很复杂,尤其是当需要支持不同的格式时。MT940 也有这个问题。MT940 不是严格定义的格式,几乎所有银行都使用略有不同的方言。

那么,如何设计更健壮和可扩展的解析器来处理不同的方言呢?

这是一个示例 MT940 语句,取自这个问题

0 投票
1 回答
366 浏览

pattern-matching - 正则表达式如何打印匹配模式中的两个之一

我有正则表达式的问题。我正在编写一个与 mt940 银行对帐单文件中的一行匹配的小程序。我有一个像这样的简单字符串:

和一个正则表达式:

那返回我

但是最后两行是分开的,我会收回不分开的最后两行,如下所示:

我认为,最后一行在“,”之前有 6 个数字,这与我的整个模式中的第二个模式匹配。

我能做些什么来恢复最后两个单词没有分开?

0 投票
2 回答
2058 浏览

php - 从带有对象的多维数组中获取值

我使用了一个小脚本来导入 mt940 文件(荷兰银行交易文件)。

这是我返回的数组,但我需要一点帮助才能从数组中获取正确的值。

例如,这个键给了我名字和地址:

这把钥匙给了我交易价格:

有什么建议么?

0 投票
2 回答
314 浏览

ruby-on-rails - 如何使用 mt940 gem 文件

您好我已经安装了 mt940 gem 文件并尝试访问它的方法如下

但是嗯出错了

嗯,对 ruby​​ on rails 很陌生,我对此一无所知。如果有人可以帮忙谢谢

0 投票
3 回答
1101 浏览

php - 如何在 MT940 中查找双重交易

目前我正在研究一个使用 php 将银行账户数据导入 MySQL 数据库的导入脚本。我找到了一些 mt940 解析器,但那些没有做我想做的事或不符合当前的 MT940 标准。所以我编写了自己的简单类来解析我需要的数据。

问题不是,这甚至可能不是 MT940 问题,是我必须过滤双重交易。基本上,这很简单,如果数据库中已经存在完全相同的事务,则不要再次导入。这就是我所做的。

但现在有趣的部分是: 一些交易可能在同一天发生两次。例如,有人在同一天进行两次相同的交易[有人可能喜欢我,只是两次给我汇款;)]。第一次导入时,没有问题。在一个文件中,每个事务都是一个事务。

但是现在的问题是: 因为交易不是唯一的(MT940 不会为交易发送任何唯一的),所以很难从唯一的交易中过滤掉双重交易。所以如果我从我的银行账户下载了两个 MT940 文件。两个事务中的一个在第一个文件中,另一个在第二个文件中。导入第二个文件时,它现在会告诉我该交易是双重交易。

所以..我正在为此苦苦挣扎,而且可能我不是唯一一个。大会计程序的使用MT940结构也必须处理同样的问题。

谁知道处理这个问题的方法?

附加信息

在交易本身 (:61:) 中,可以获得以下信息:

  • 日期
  • 数量
  • 银行帐号
  • 银行账户名称
  • 银行账户地址
  • 交易说明

如果某人进行两次交易,则可能会发生所有这些信息都相同的情况。

两次双重交易的例子(当然我修改了交易的名称和银行账户):(这个在一个MT940文件中是双重的,但实际上是两次交易)。

0 投票
1 回答
5034 浏览

c# - 阅读迅捷短信MT940

我正在阅读 Swift 消息 MT940,它读起来很好,直到我遇到一个小问题。以下是正在阅读的消息片段;

这是我用来阅读这一行的代码;

上面的代码运行良好,但在部署解决方案后,我注意到正在读取的文件可以采用这种格式

我的挑战:大多数消息总是带有嵌入在行中的 S202、S103 或 S102,如果我遇到相反的情况,比如下面的这条消息(FTRF),我该如何修改我的代码来处理它?

0 投票
1 回答
355 浏览

mt940 - 我应该如何解读 MT940 规格

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

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

例如:

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

0 投票
1 回答
2517 浏览

c# - 如何使用正则表达式或 Raptorious.SharpMt940Lib 解析 mt940 文件?

如何使用 regex 或 Raptorious.SharpMt940Lib 无错误地解析 mt940 文件?

以下代码返回给我错误:

错误 :

样本数据 :