X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fdxoldtonew.pl;h=e4261b58c536c00f210dc4101c4215d2cdf3cdb7;hb=ebba9c9a990734611de84b91a3483de1ff9ed514;hp=9ad356054b2ed3b9e5146c5a50ee5bfb063148c4;hpb=7f77f123e7b001912474dacac3b3e1a11be8eb7c;p=spider.git diff --git a/perl/dxoldtonew.pl b/perl/dxoldtonew.pl index 9ad35605..e4261b58 100755 --- a/perl/dxoldtonew.pl +++ b/perl/dxoldtonew.pl @@ -1,34 +1,56 @@ #!/usr/bin/perl # -# convert an Ak1a DX.DAT file to comma delimited form +# convert an AK1A DX.DAT file to comma delimited form # +# PLEASE BE WARNED: # +# This routine is really designed for archive data. It will create and add to +# standard DXSpider spot files. If those spot files already exist (because you +# were running DXSpider at the same time as collecting this 'old' data) then +# this will simply append the data onto the end of the appropriate spot file +# for that day. This may then give strange 'out of order' results when viewed +# with the show/dx command +# +# $Id$ +# +# Copyright (c) 1998-2003 Dirk Koopman G1TLH +# + +# search local then perl directories +BEGIN { + # root of directory tree for this system + $root = "/spider"; + $root = $ENV{'DXSPIDER_ROOT'} if $ENV{'DXSPIDER_ROOT'}; + + unshift @INC, "$root/perl"; # this IS the right way round! + unshift @INC, "$root/local"; +} -use Date::Parse; +use DXUtil; use Spot; use Prefix; -sysopen(IN, "../data/DX.DAT", 0) or die "can't open DX.DAT ($!)"; -open(OUT, ">../data/dxcomma") or die "can't open dxcomma ($!)"; +$ifn = "$root/data/DX.DAT"; +$ifn = shift if @ARGV; +print "Using: $ifn as input... \n"; -Prefix::load(); +sysopen(IN, $ifn, 0) or die "can't open $ifn ($!)"; -$fn = Spot::prefix(); -system("rm -rf $fn/*"); +Prefix::init(); +Spot::init(); while (sysread(IN, $buf, 86)) { ($freq,$call,$date,$time,$comment,$spotter) = unpack 'A10A13A12A6A31A14', $buf; - $d = $date =~ s/^\s*(\d+)-(\w\w\w)-(19\d\d)$/$1 $2 $3/o; - $t = $time =~ s/^(\d\d)(\d\d)Z$/$1:$2 +0000/o; - $dt = undef; - $dt = str2time("$date $time") if $d && $t; +# printf "%-13s %10.1f %s %s by %s %s\n", $call, $freq, $date, $time, $spotter, $comment; + + $dt = cltounix($date, $time); $comment =~ s/^\s+//o; if ($dt ) { - Spot::add($freq, $call, $dt, $comment, $spotter); + my @spot = Spot::prepare($freq, $call, $dt, $comment, $spotter); + Spot::add(@spot); } else { - print "$call $freq $date $time\n"; + print "ERROR: $call $freq $date $time by $spotter $comment\n"; } } close(IN); -close(OUT);