Как реализовать приложение предварительной обработки файлов CSV для выписки по счету? - PullRequest
0 голосов
/ 01 ноября 2011

Я хочу написать своего рода препроцессор для данных банковской выписки, представленных в виде файла CSV. Требования довольно просты и включают в себя:

  1. Извлечение только одного определенного набора строк из входного файла.
  2. Преобразование пользовательского формата даты в стандартный распознанный формат даты.
  3. Интерпретация индикатора DR / CR и соответствующая установка знака в поле суммы.
  4. Разбор поля типа заметки в отдельные поля на основе данных в начале поля заметки.

Я мог бы съесть это на завтрак в простом инструменте командной строки C #, но я думаю, что это приложение гораздо больше подходит для сценариев, не скомпилированных реализации. Я хочу избежать VBScript любой ценой, просто потому, что он такой уродливый. Я только что установил ActivePerl и хотел бы лучше узнать Perl, но я не знаю, с чего начать.

Я думаю, что мой самый эффективный вопрос здесь будет таким: Где я могу найти статьи или примеры и т. Д., Которые помогут достичь того, чего я хочу, предпочтительно с использованием платформы сценариев, легко доступной для Windows 7.

ADDED: Исходя из первоначальной обратной связи, похоже, что я буду использовать Perl с пакетами Text :: CSV_XS и Time :: Piece . Я могу легко установить их с ppm , но как мне развернуть свое решение на целевом клиентском компьютере с Windows 7? Я бы предпочел не включать инструкции для клиента для , набрать 'ppm xxxx' и ждать установки пакета и т. Д.

Ответы [ 2 ]

3 голосов
/ 01 ноября 2011

Добро пожаловать в Perl!Чтобы начать, вы всегда должны начинать свой сценарий с:

use strict;
use warnings;

Это избавит вас от многих неприятностей позже, поскольку вынуждает вас объявлять переменные и выдает предупреждения.

ДляВ вашей конкретной задаче Perl имеет множество модулей, которые могут сделать большую часть работы за вас. Вы можете установить их, используя ppm (Perl Package Manager, который поставляется с ActiveState).Просто запустите его из командной строки, и он откроет графический интерфейс.

Модули, которые я предлагаю вам использовать:

  1. Text ::CSV_XS , который сделает для вас разбор CSV.Затем вы можете получить доступ к каждой строке в качестве ссылки на массив.
  2. Time :: Piece , который может анализировать дату (используя strptime ()) в объекте даты / времени.

Документация для каждого модуля включает в себя SYNOPSIS в начале, который обычно является примером кода, который очень полезен для начала его использования.

Для других задач вы должны быть в состояниииспользовать основной Perl.Возможно, вам понадобится использовать регулярные выражения (см. perlrequick ) для анализа типа заметки.Или вы можете использовать функцию split , в зависимости от того, что вам нужно сделать.

Помимо этого, вам просто нужно изучить Perl. онлайн-уроки должны помочь.

ОБНОВЛЕНИЕ

Чтобы развернуть свое приложение, вы можете:

  • Запустить сценарий как есть, предполагая, что ваши пользователи установили ActiveState Perl на своих ПК.Я вычеркнул немного о PPM, потому что указанные мной модули (и многие другие часто используемые) фактически включены в ActiveState Perl 5.10 или более поздней версии, поэтому никому не нужно устанавливать что-либо еще.
  • [Менее предпочтителен, так как вы пытаетесь избежать компиляции] Скомпилируйте скрипт в исполняемый файл.Это обеспечит включение всех необходимых модулей.Подвох в том, что компилятору activestate perlapp (который поставляется с Perl Dev Kit ) требуется коммерческая лицензия.Кроме того, Strawberry Perl включает в себя инструменты, которые помогут вам скомпилировать в Windows.
1 голос
/ 01 ноября 2011

Если вы не хотите устанавливать какие-либо модули, рассмотрите возможность использования драйвера ADO / Text через Win32 :: OLE. Папка C:\Perl\eg\aspSamples содержит несколько примеров, просто игнорируйте части ASP. Информация о драйвере здесь .

...