`

对账单拆分

 
阅读更多
* 拆分对账单
 * 
  * Created by albg on 2016/4/15.
  */
class SplitAccount {
  
  /**
   * inPath 源文件地址
   * outPath 输出文件地址
   * 规则:1.以字符串"商户交易明细"为一个子文件的开始标识
   *       2.规定前5行为文件头,原因是商户号在地五行
   *       3.文件名称为商户号+清算日期
   */
   def spilt(inPath:String,outPath:String) ={
     var isDeal:Boolean = false  //处理标识
     var lineNum:Int =0  //行计数器
     var isPrt:Boolean = false  //打印标识
     var topLines:List[String] = Nil  //记录文件头
     var writer:PrintWriter = null  //打印
     val read = Source.fromFile(inPath,"gbk")  //都入流,设定字符集为gbk
     read.getLines().foreach{ v =>//遍历整个文档
       if(v.trim.contains( "商户交易明细")){ isDeal = true ; isPrt =false }  //开闭
       if(isDeal){  //进入文件头处理
         lineNum += 1  //记录行数
         if(lineNum != 5) topLines = v::topLines  //记录文件头
         if(lineNum == 5){  //当文件头记完时,进行新文档的处理
           val merNo = v.replaceAll(" ","").substring(4,19)+v.replaceAll(" ","").substring(23,31)  //设定文件名称
           if(writer !=null)  writer.close()  //关闭上一个写入流
           writer = new PrintWriter(new File(outPath+merNo+".txt" ))  //新建一个写流
           isPrt =true  //开启打印
           topLines.reverse.foreach( a =>writer.println(a))  //将头部打印
           topLines = Nil  //将头文件记录清空
           isDeal =false  //关闭处理
           lineNum=0  //清零行数
         }
       }
       if(isPrt) writer.println(v)  //打印
     }
     if(writer !=null)  writer.close()  //关闭写入流
     read.close()  //关闭读入流
   }
 }

 

分享到:
评论

相关推荐

    bill-splitting:账单拆分应用程序的概念-使用React Native,Ant-Design和样式化组件构建

    账单拆分 与一组用户拆分帐单特别感谢创建了这个并允许我进行开发。 :yellow_heart: :pushpin: 目录 贡献执照 :construction_worker: 安装您需要先安装Node.js , Yarn , Android SDK ,然后才能通过HTTPS克隆项目...

    bill-manager:有助于账单拆分的应用程序

    该应用旨在提供一个轻便/易于使用的平台,该平台可在您外出时与您的朋友一起拆分账单。 特征: 勾选/取消选中参与者的份额,将其平均分配给相关参与者。 按消耗的单位拆分帐单。 非常适合每瓶/单位消费。 根据...

    hexchange:基于组的账单拆分器,用于食品订单,聚会,公寓共享等

    **项目标题:** hexchange - 基于组的账单拆分器 **项目描述:** `hexchange` 是一个专为处理各种费用分摊场景设计的应用,如食品订单、聚会开销、公寓共享费用等。它采用了一种组为基础的方法来拆分账单,确保每...

    面包拆分::bread:分组账单拆分变得容易,快速和可自定义

    面包分裂分组账单拆分变得容易,快速和可定制。 :warning: 该项目目前正在大规模开发中 :warning: :glowing_star: 主要特点免费和开源无广告离线工作在线共享与合作支持多种货币费用表i18n(当前支持:英语,繁体...

    beven:旅行费用计算器和账单拆分

    贝文 FIXME:为您的库/项目写一个单行描述。 概述 FIXME:写一个有关库/项目的段落并突出其目标。 设置 要运行交互式开发环境: lein figwheel 并在打开浏览器。 这将自动编译并将所有更改发送到浏览器,而无需重新...

    SlackPal:SlackPal,您的朋友,将满足您的所有账单拆分需求

    节省在工作区中拆分账单的麻烦 介绍 :waving_hand: 您好,我是您的SlackPal! :waving_hand: :money_with_wings: 给我发您的收据,我将处理所有帐单拆分和付款 :handshake: 向您的团队介绍我: 随时将此消息...

    Bill Splitter:与多个人轻松拆分账单-开源

    它不仅提供了完全自定义的名称设置,还允许用户根据各地税率进行调整,让账单拆分变得简单而精确。 "Bill Splitter"的一大亮点在于其开源属性。这意味着软件的源代码对公众开放,任何人都可以查看、学习甚至改进它...

    拆分账单后端:拆分该账单应用程序的后端

    在开发“拆分账单”应用程序的后端时,我们需要关注多个关键知识点,尤其是在使用C#作为主要编程语言的情况下。以下是一些核心概念和技术的详细解释: 1. **Web API框架**: C#中的ASP.NET Web API是构建RESTful...

    Split-It:使用javascript,react,nodejs,postgresSQL制作基于Web的服务器,该服务器也可以在移动设备上访问以帮助拆分账单或付款

    与家人和朋友一起外出就餐时可以解决的头痛账单拆分应用程序! 动机 每个人都经历过不得不将账单分配给一群朋友的问题。 拆分它旨在解决在不使用现金拆分账单的情况下在一群人之间计算账单的麻烦和痛苦。 Split It的...

    川赛中午操作说明

    - **2.5 分单**:将一个大账单拆分成多个小账单,便于顾客分开结账。 - **2.6 输入折扣** - **A. 输入固定金额及百分比折扣**:提供固定金额或比例的优惠。 - **B. 输入自定义金额及百分比折扣**:允许自定义折扣...

    美萍餐饮管理系统培训教程.doc

    - **拆分账单**:将合并的账单拆分为独立账单,满足不同客户需求。 通过以上步骤,美萍餐饮管理系统能够实现对餐厅运营的全面管理,提高服务效率,减少操作错误,优化客户体验。对于餐厅经营者和员工来说,熟练...

    计费管理系统

    5. **账单合并与拆分**:针对企业客户,可能需要将多个账单合并成一个,或者将单一账单拆分为多个部分。 6. **自动化工作流**:引入工作流引擎,自动处理审批、异常处理等业务流程。 综上所述,计费管理系统是企业...

    Bill-splitter:小型应用程序,用于拆分由React-Native制作的账单

    **账单拆分器应用** “Bill-splitter”是一款基于React-Native的小型应用程序,旨在帮助用户轻松地将账单金额平均分配给两人。在共享消费的场景中,这样的工具十分实用,例如朋友聚餐、合租等情况下,能够快速准确...

    拆分器

    项目名为"bill-splitter-development",暗示这可能是一个账单拆分应用的开发版本。在朋友聚餐或合租情况下,平均分摊账单是常见的需求,这样的应用能帮助用户轻松计算每个人应支付的金额。这个项目可能是用...

    api-buddysplit:好友拆分的api

    API-BuddySplit就是这样一款专门解决这个问题的API,它采用JavaScript编程语言,帮助开发者轻松实现好友间的账单拆分功能。下面我们将深入探讨这个API的核心概念、工作原理以及如何在实际项目中应用。 一、API-...

    信用卡分期电话营销话术参照.doc

    1. **信用卡分期**:这是一种金融工具,允许持卡人将大额消费或账单拆分为若干期支付,每期支付一部分本金和手续费,而不是一次性全额还款。这种方式可以缓解客户的短期资金压力,尤其适用于应对突发性的大额消费。 ...

    需求分析--餐饮系统

    - 将一张账单拆分成多张。 11. **合并账单**: - 将多张账单合并为一张。 12. **日始日结**: - 每天开始和结束时的系统操作,如数据备份、结算等。 13. **切换至快餐模式**: - 改变系统操作模式,适用于快餐...

    美萍足浴软件1010v2

    (注:①区:用来显示当前结账手牌的账单号、手牌编号、消费金额,②区:如果结账的宾客是本店的会员用来指定此会员的编号,可亨受相应的打折比率,打折比率可在系统设置中进行设置,③区:中分别有付款方式、信用卡...

    基于业务功能域拆分的BOSS数据库规划与实践

    以中国移动通信集团福建有限公司(以下简称福建移动)为例,其每日处理的话单超过2.5亿条,月处理账单数量达到了1.46亿,支撑的资费套餐种类繁多。这样的规模导致支撑系统的单节点数据量和业务量日益膨胀,严重影响...

    用例_使用TOS4DI实现零售行业的支付拆分

    在零售场景中,顾客的购物账单可能由多种支付方式组合而成,比如一部分用信用卡,一部分用优惠券,还有一部分可能是现金。支付拆分就是将这笔总金额按照不同支付方式的比例进行细分,以便于财务记账和审计。 TOS4DI...

Global site tag (gtag.js) - Google Analytics