读取MT940文件数据并存入数据库table
Reading an MT940 file data and storing into database table
我是 MT940 文件的新手,我正在搜索示例代码来读取 .mt940 的内容并存储在数据库 table 中,并包含相应的字段。我正在努力分析它。
有什么简单的方法可以解析并保存在 table?
例如下面一行(这不是整个 mt940 只是一行)
:61:2009230923D4086,74NDDTNONREF //NONREF
如何从上面的行中检索客户参考 (=NONREF)?它不会出现在所有行的同一索引中。有时从 28index 开始,有时从 30index 开始。
使用正则表达式
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
namespace ConsoleApp1
{
class Program
{
const string FILENAME = @"c:\temp\test.txt";
const string pattern = @":61:(?'ValueDate'.{6})(?'EntryDate'.{4})(?'Mark'.{2})(?'FundCode'.{1})(?'Amount'[\d,]+)(?'ID'.{4})((?'CustomerReference'.{1,16})(//)(?'BankReference'.*)|(?'CustomerReference'.{1,16}))";
static void Main(string[] args)
{
string data = File.ReadAllText(FILENAME);
MatchCollection matches = Regex.Matches(data, pattern, RegexOptions.Multiline);
foreach (Match match in matches)
{
string valueDate = match.Groups["ValueDate"].Value;
string entryDate = match.Groups["EntryDate"].Value;
string mark = match.Groups["Mark"].Value;
string fundCode = match.Groups["FundCode"].Value;
string amount = match.Groups["Amount"].Value;
string id = match.Groups["ID"].Value;
string customerReference = match.Groups["CustomerReference"].Value;
string bankReference = match.Groups["BankReference"].Value;
Console.WriteLine("ValueDate = {0}, EntryDate = {1}, Mark = {2}, FundCode = {3}, Amount = {4}, ID = {5}, Customer = {6}, Bank = {7}",
valueDate, entryDate, mark, fundCode, amount, id, customerReference, bankReference);
}
Console.ReadLine();
}
}
}
我是 MT940 文件的新手,我正在搜索示例代码来读取 .mt940 的内容并存储在数据库 table 中,并包含相应的字段。我正在努力分析它。 有什么简单的方法可以解析并保存在 table?
例如下面一行(这不是整个 mt940 只是一行)
:61:2009230923D4086,74NDDTNONREF //NONREF
如何从上面的行中检索客户参考 (=NONREF)?它不会出现在所有行的同一索引中。有时从 28index 开始,有时从 30index 开始。
使用正则表达式
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
namespace ConsoleApp1
{
class Program
{
const string FILENAME = @"c:\temp\test.txt";
const string pattern = @":61:(?'ValueDate'.{6})(?'EntryDate'.{4})(?'Mark'.{2})(?'FundCode'.{1})(?'Amount'[\d,]+)(?'ID'.{4})((?'CustomerReference'.{1,16})(//)(?'BankReference'.*)|(?'CustomerReference'.{1,16}))";
static void Main(string[] args)
{
string data = File.ReadAllText(FILENAME);
MatchCollection matches = Regex.Matches(data, pattern, RegexOptions.Multiline);
foreach (Match match in matches)
{
string valueDate = match.Groups["ValueDate"].Value;
string entryDate = match.Groups["EntryDate"].Value;
string mark = match.Groups["Mark"].Value;
string fundCode = match.Groups["FundCode"].Value;
string amount = match.Groups["Amount"].Value;
string id = match.Groups["ID"].Value;
string customerReference = match.Groups["CustomerReference"].Value;
string bankReference = match.Groups["BankReference"].Value;
Console.WriteLine("ValueDate = {0}, EntryDate = {1}, Mark = {2}, FundCode = {3}, Amount = {4}, ID = {5}, Customer = {6}, Bank = {7}",
valueDate, entryDate, mark, fundCode, amount, id, customerReference, bankReference);
}
Console.ReadLine();
}
}
}