当前位置: 首页 > 编程语言 > C#

C#学习教程:.txt文件中电子转账数据的转换方法分享

时间:2023-04-10 21:57:28 C#

.txt文件中电子转账数据的转换方法所以目前我们的ERP/PSA软件生成的是EFT(ElectronicFundsTransfer).txt文件,其中包含银行和员工银行信息,然后发送到银行。问题如下EFT文件当前以美国标准格式生成,不适合加拿大银行标准。但我有所需的加拿大银行标准格式。文件的格式是关于文件中的列数和它们包含的字符数(如果列的数据没有达到字符数需要用空格填充)。所以,像这样的1011234567Joe,Bloggs1234567例如,我想尝试转换为加拿大标准A101Joe,Bloggs12345671234567例如,“A”需要添加到记录的第一行。我只是想知道如何在C#中执行这样的任务,即读入文本文件。逐行解析数据的开始和结束分配给变量的值为这些变量重建新文件具有不同的排序和附加数据我的IDE没有打开所以我的语法可能有点过时,但我会尝试为您指明正确的方向。不管怎样,直接给你解决方案有什么乐趣?首先,您将获得一个行列表:IEnumerablelines=text.Split('n');你说列没有分隔符,但有固定的宽度,但你没有提到定义列大小的位置。通常你会想要删除每一列的文本colText=line.Substring(startOfColumn,lengthOfColumn);对于每一列,您必须根据列的位置和长度计算startOfColumn和lengthOfColumn。希望这对您来说是一个很好的基础。我认为最好的方法是创建一个类来保存文件中存在的逻辑数据,并使用此类中的方法以给定格式解析数据并将其保存回给定格式。例如,考虑以下类:publicclassEFTData{publicstringName{get;放;}publicstringRoutingNumber{get;放;}publicstringAccountNumber{get;放;}公共字符串ID{得到;放;}publicvoidFromUSFormat(stringsLine){this.Id=sLine.Substring(0,3);this.RoutingNumber=sLine.Substring(3,7);this.Name=sLine.Substring(10,20);this.AccountNumber=sLine.Substring(30,7);}publicstringToCanadianFormat(){varsbText=newSystem.Text.StringBuilder(100);//请注意,您可以根据需要在此处填充或修剪字段sbText.Append("A");sb文本。追加(这个。Id);sbText.Append(this.RoutingNumber);sbText.Append(this.AccountNumber);返回sbText.ToString();}}然后就可以读取美国文件,写入加拿大文件了,如下图:以上就是C#学习教程:.txt文件中电子转账数据共享的转换方法的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注—//假设文件中只有一行stringsLineToProcess=System.IO.File.ReadAllText(“usin.txt”);varoData=newEFTData();//解析美国数据oData.FromUSFormat(sLineToProcess);//写入加拿大数据使用(varoWriter=newStreamWriter("canout.txt")){oWriter.Write(oData.ToCanadianFormat());}varlines=File.ReadAllLines(inputPath);varresults=newList();foreach(varlineinlines){results.Add(string.Format("A{0}",line));}File.WriteAllLines(outputPath,results.ToArray());网络收藏不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: