Thread Datenauswertung die etwas größer ist (15 answers)
Opened by Willifred71 at 2012-01-03 17:05

topeg
 2012-01-03 19:34
#155242 #155242
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
mal kurz ungetestet zusammengestellt:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/perl

use strict;
use warnings;

use Text::CSV;
use Date::Parse;

my $infile='datensatz.csv';
my $outfile='daten_out.txt';

# Ergebnisse. Jedes Jahr ein Arrayeintrag.
my @result;

# ein Jahr in Sekunden
my $one_year=60*60*24*365;
# für besseren Wert nutze ein Date Calc Modul

# aktueller timestamp;
my $now=time();

my $csv = Text::CSV->new() or die( "ERROR CSV: ".Text::CSV->error_diag()."\n" );
open(my $ifh, '<', $infile) or die("ERROR open $infile ($!)\n");

while(my $row = $csv->getline($ifh) )
{
  my $date=str2time($row->[0]);
  my $size=$row->[1];

  # Modulo war Unsinn
  my $years=int(($now-$date)/$one_year);

  $result[$years]->{size}+=$size;
  $result[$years]->{count}++;
}
close($ifh);


# Ausgabe:
open(my $ofh, '>', $outfile) or die("ERROR open $outfile ($!)\n");
for my $year (0..$#result)
{
  next unless($result[$year]);
  printf $ofh "Daten Alter älter als %u Jahr; Anzahl %u Dateien mit %u Byte Größe\n",
               $year, $result->{count}, $result->{size};
}
close(my $ofh);


EDIT:
Blödsinn korrigiert.
Last edited: 2012-01-04 00:36:00 +0100 (CET)

View full thread Datenauswertung die etwas größer ist