From e138c085871ca52cc4a7143b68d8491999f6a366 Mon Sep 17 00:00:00 2001 From: minima Date: Tue, 1 Nov 2005 13:17:59 +0000 Subject: [PATCH] *** empty log message *** --- perl/log2csv.pl | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 perl/log2csv.pl diff --git a/perl/log2csv.pl b/perl/log2csv.pl new file mode 100755 index 00000000..eb6c41dc --- /dev/null +++ b/perl/log2csv.pl @@ -0,0 +1,56 @@ +#!/usr/bin/perl -w +# +# convert a DXSpider Log file to csv format +# +# usage: log2csv.pl ... +# +# Copyright (c) 2005 Dirk Koopman G1TLH +# +# $Id$ +# +# make sure that modules are searched in the order local then perl +use strict; + +BEGIN { + # root of directory tree for this system + use vars qw($root $is_win); + $root = "/spider"; + $root = $ENV{'DXSPIDER_ROOT'} if $ENV{'DXSPIDER_ROOT'}; + + unshift @INC, "$root/perl"; # this IS the right way round! + unshift @INC, "$root/local"; + + $is_win = ($^O =~ /^MS/ || $^O =~ /^OS-2/) ? 1 : 0; # is it Windows? +} + +use DXUtil; + +die "usage: log2csv.pl ....\n" unless @ARGV; + +my $crnl = $is_win ? "\015\012" : "\012"; + +for (@ARGV) { + unless (open IN, $_) { + print STDERR "cannot open $_ $!\n"; + next; + } + while () { + chomp; + s/([\%\"\'\x00-\x1f\x7f-\xff])/sprintf("%%%02X", ord($1))/eg; + my @line = split '\^'; + my $date = unpad cldate($line[0]); + my $time = unpad ztime($line[0], 1); + print "$date\t$time\t$line[1]"; + shift @line; + shift @line; + while (@line < 3) { + unshift @line, ''; + } + print "\t", join("\t", @line), $crnl; + } + close IN; +} + + + + -- 2.34.1