SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

Der er mange måder at gøre det på?



Der er mange måder at gøre det på, men de er ikke alle lige gode desværre. Det her program
som jeg har lavet, det fungerer sådan set efter hensigten, men jeg er lidt utilfreds med
det. Jeg synes nemlig ikke at det er struktureret særligt godt. Det ville jeg gerne have
nogen komentarer til, hvis der er nogen der gider. Det skyldes også det forhold at
programmet langt fra er færdigt, det skal til sin tid køre som cronjob og så der skal en
del mere på bl. a skal det ikke læse ud til en fil men ind i en database.



#!/usr/bin/perl -w
use strict;
use diagnostics;
use LWP::UserAgent;

undef $/;    # $/ er record seperstor sørger for at perl læser heler filen

open(OUTPUT,'>./pgdata/testfilodds.txt') or die;

my $ua = LWP::UserAgent->new;
my $matchurl =
HTTP::Request->new('GET','http://www.crastinum.com/oddcomp/data/matchlst.htm'); 
my $updateurl = HTTP::Request->new('GET', 'http://www.crastinum.com/oddcomp/sivu.html');
my $oddsurl = HTTP::Request->new('GET',
'http://www.crastinum.com/oddcomp/data/oddcomp.txt');
my $res = $ua->request($oddsurl); 	# indlæser filen fra nettet
my $oddsliste;
my $dato; 	
my $dag;
my $month;
my $year;
my $guest;;
my $home;
my $oneodds;
my $drawodds;
my $twoodds;
my $hold;
my $match;
my $kamp;
my $large;
my $double = "gt25";
my $bookkie;
my $count = 0;
my $errorlines;
my $matchfound = "false";


if ($res->is_success) {
     $oddsliste =  $res->content;
  } else {
     $errorlines = "Bad luck this time\n";
  };

my @b= split(/\n/,$oddsliste);		

$oddsliste =~ s/<.*?>/""/gs;				#væk med Html tags 

$oddsliste =~ s/\"/ /gs;

LINE: for (@b) {
	s/^\s*//;
	chomp;
	next LINE if ($_ !~ /./);
	next LINE if (/avg/);
	if (/(\w+)\s*(\d{1,2}).*?(\d{4})(.*?)-(.*)/) {
		$month = $1;
		$dag = $2;
		$year = $3;
		$home = $4;
		$guest = $5;
		$month =~ s/January/1/; 
		$month =~ s/February/2/;
		$month =~ s/March/3/;
		$month =~ s/April/4/;
		$month =~ s/Mai/5/;		
		$month =~ s/June/6/;
		$month =~ s/July/7/;
		$month =~ s/August/8/;
		$month =~ s/September/9/;
		$month =~ s/October/10/;
		$month =~ s/November/11/;
		$month =~ s/December/12/;
                
		$dato  = join('/', $dag, $month,$year);
		$matchfound = "true";
		next LINE ;
	
	} else {
		if ($_ !~ /\d+?.+?\d+?.+?\d+?.+?\d+?.+?\d+?.+?\d+?.+?/) {
			$matchfound = "false"
		}
	};	 
	if(
	  	($matchfound =~ /true/) && 
	   	($_ !~ /\D\d{5,6}\D/)   &&
		(
	    		(/^(.*?)\s+(\d{3})\s+(\d{3})\s+(\d{3}).*/) ||  
	    		(/^(.*?)(\d{4})\s+(\d{3})\s+(\d{3}).*/)    ||
	    		(/^(.*?)\s+(\d{3})(\d{4})\s+(\d{3}).*/)    ||
	    		(/^(.*?)\s+(\d{3})\s+(\d{3})(\d{4}).*/)
	    	)
	   ) {
	   	$bookkie = $1;
		$oneodds = $2;
		$drawodds= $3;
		$twoodds= $4;
		print OUTPUT 
			$dato,"\t",
			$home | "                          ",
			$guest | "                          ",
			$bookkie | "                         ",
			$oneodds,"\t",
			$drawodds,"\t",
			$twoodds,"\n";
		next LINE ;
	
		
	} else{
	
		$errorlines .= $dato."\t".$matchfound."\t".$home."\t".$guest."\t".$_."\n" 
		
	}
	
};

print OUTPUT "Fejlramte linjer \n",$errorlines;
close OUTPUT
 


-- 
Med venlig hilsen Poul-Erik Andreasen


 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:53
Denne side vedligeholdes af MHonArc .