如何为银行对帐单CSV文件实施预处理应用程序?

时间:2011-11-01 03:47:15

标签: windows perl scripting windows-7 command-line

我希望为以CSV文件形式提供的银行对账单数据编写某种预处理器。要求非常简单,包括:

  1. 仅从输入文件中提取一组特定的行。
  2. 将自定义日期格式转换为标准的,可识别的日期格式。
  3. 解释DR / CR指标并在金额字段上正确设置标记。
  4. 根据备注字段开头的数据,将备注类型字段解析为单独的字段。
  5. 我可以在一个简单的C#命令行工具中吃早餐,但我认为这个应用程序更适合脚本化的非编译实现。我想不惜一切代价避免使用VBScript,只是因为它太丑了。我刚刚安装了ActivePerl,想要更好地了解Perl,但我不知道从哪里开始。

    我认为我最有效的问题是:我在哪里可以找到有助于实现我想要的文章或示例等,最好使用适用于Windows 7的脚本平台。

    已添加:根据初步反馈,看起来我将使用带有Text::CSV_XSTime::Piece软件包的Perl。我可以使用 ppm 轻松安装这些,但是如何将我的解决方案部署到目标Windows 7客户端计算机?我更倾向于避免必须包含客户端的指令键入'ppm xxxx'并等待软件包安装等。

2 个答案:

答案 0 :(得分:3)

欢迎来到perl!为了帮助您入门,您应始终使用以下命令开始编写脚本:

use strict;
use warnings;

这会为您节省很多麻烦,因为它会强制您声明变量并给出警告。

对于您的特定任务,perl有许多模块可以为您完成大量工作。 您可以使用ppm(Perl包管理器,它附带ActiveState)来安装它们。只需从命令行运行它,它就会打开一个GUI。

我建议您使用的模块是:

  1. Text::CSV_XS将为您执行CSV解析。然后,您可以作为数组引用访问每一行。
  2. Time::Piece可以将日期(使用strptime())解析为日期/时间对象。
  3. 每个模块的文档在开头都包含SYNOPSIS,这通常是示例代码,非常有助于您开始使用它。

    对于其他任务,您应该能够使用核心perl。您可能需要使用正则表达式(请参阅perlrequick)来解析备忘录类型。或者您可以使用split功能,具体取决于您需要做什么。

    除此之外,你只需要学习perl。 online tutorials应该有所帮助。

    更新

    要部署您的应用,您可以:

    • 按原样运行脚本,假设您的用户在自己的PC上安装了ActiveState Perl。我已经在PPM上搞砸了,因为我指定的模块(以及许多其他常用的模块)实际上包含在ActiveState Perl 5.10或更高版本中,所以没有人需要安装其他任何东西。
    • [不太喜欢,因为你试图避免编译] 将脚本编译成exe。这将确保包含任何所需的模块。问题在于,activestate的编译器perlappPerl Dev Kit附带)需要商业许可证。或者,Strawberry Perl包括可帮助您在Windows上编译的工具。

答案 1 :(得分:1)

如果您不想安装任何模块,请考虑通过Win32 :: OLE使用ADO / Text驱动程序。 C:\Perl\eg\aspSamples文件夹包含一些示例,只是忽略ASP部分。特定于驱动程序的信息为here