Oct 31, 2013 10:40:05 AM PCKLog log
INFO: 10.20.33.251: recv - <2>747599306525<3><5><4>
Oct 31, 2013 10:40:05 AM PCKLog log
INFO: connect PLU server = 128.20.20.211, PLU port = 31415
Oct 31, 2013 10:40:05 AM PCKLog log
INFO: connected.....
Oct 31, 2013 10:40:05 AM PCKLog log
INFO: PLU send - 12 bytes
Oct 31, 2013 10:40:05 AM PCKLog log
INFO: PLU send - 747599306525
Oct 31, 2013 10:40:06 AM PCKLog log
INFO: PLU recv - 124 bytes
Oct 31, 2013 10:40:06 AM PCKLog log
INFO: PLU recv - GHIRARDELLI MINT1106002
Oct 31, 2013 10:40:06 AM PCKLog log
INFO: disconnected.....
Oct 31, 2013 10:40:06 AM PCKLog log
INFO: 10.20.33.251: send - <2>\x0B\x1B[1F\x1B[08;08TMBheader\x1B[2002F\x1B[000;24CGHIRARDELLI MINT\x1B[6F\x1B[000;36C2/$6.00<3>8<4>
Oct 31, 2013 10:40:11 AM PCKLog log
INFO: 10.20.33.251: send - <2>\x0B\x1B[1F\x1B[008;08T\x1B[1002J<3>8<4>
####
#!C:\Perl\bin\perl
use strict;
use warnings;
use Parse::RecDescent;
use Data::Dumper;
BEGIN{ $::RD_AUTOACTION=q{ [@item[1..$#item]] }; }
my $grammar = q{
transaction: date|scan|date|connectPLU|date|connected|date|sending|date|sent|date|receiving|date|received|date|disconnected|date|display1|date|display2
date: /([Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec]\\\\s+\\\\d{1,2}, \\\\d{4}) (\\\\d{1,2}:\\\\d{1,2}):\\\\d{1,2} ([AM|PM]) PCKLog log/ { print"$item[0]: $item[1] - $item[2]$item[3]\\\\n"; } |
scan: /INFO: (\\\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}): recv - \\<\\d\\>(\\d+)\\<\\d\\>\\<\\d\\>\\<\\d\\>/ |
connectPLU: /INFO: connect PLU server = \\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}, PLU port = \\d+/ |
connected: /INFO: connected\\.\\.\\.\\.\\./ |
sending: /INFO: PLU send - \\d{1,2} bytes/ |
sent: /INFO: PLU send - (\\d+)/ |
receiving: /INFO: PLU recv - \\d{1,3} bytes/ |
received: /INFO: PLU recv - \\<\\?xml .*\\?\\>\\\\(.*)\\<\\/desc\\>\\\\d{1,4}\\<\\/dept\\>\\(\\d{1,4})\\<\\/prc1\\>\\\\d{1,3}\\<\\/deal\\>\\<\\/PLU\\>/ |
disconnected: /INFO: disconnected\\.\\.\\.\\.\\./ |
display1: /INFO: (\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}): send - .*/ |
display2: /INFO: (\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}): send - .*/
};
my $parser = new Parse::RecDescent($grammar) or die "Bad grammar: $!\\n";
my($INFILE,$storelog);
my @log;
$storelog = "SingleTrans.txt";
open $INFILE,"<",$storelog or die "Can't open $storelog: $!\\n";
@log=<$INFILE>;
close $INFILE;
my $tree=$parser->transaction(@log);
print Dumper($tree);
##
##
Date: Oct 31, 2013 - 10:40
Scanner: 10.20.33.251
PLU: 747599306525
Description: GHIRARDELLI MINT