Thread Probleme mit MLDBM (4 answers)
Opened by adler1860 at 2005-05-23 14:00

Crian
 2005-05-23 18:42
#55095 #55095
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Ich nehme mal an, Deine Textdateienamenn haben immer das Format "kwYYYY-MM.txt" (wobei YYYY für eine Jahreszahl und MM für eine zweistellige Monatszahl steht). Folgender Ansatz:

Code: (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
#!/usr/bin/perl
use strict;
use warnings;

use File::Basename qw/basename/;

my @files = @ARGV;

die "Syntax: " . basename($0) . " Datei1 [Datei2] [Datei3] ...\n" unless @files;

my @labels;

for my $file (@files) {
my ($label = basename($file)) =~ s~^kw(.+)\.txt$~$1~;
die "kann keinen Label zur Datei '$file' finden\n" unless defined $label and length $label;
push @labels, $label;
}

die "Anzahl Dateien und Anzahl Label sind unterschiedlich\n" unless @label == @files;

my %db;

for my $i (0 .. $#files) {
my $file = $files[$i];
my $label = $labels[$i];

open(F, $file) or die "Kann '$file' nicht oeffnen: $!\n";
while (<F>) {
chomp;
next if m/^\s*$/;
my ($suchbegriff, $anzahl) = split("\t",$zeile);
$db{$suchbegriff}->{$label} = $anzahl;
# oder: push @{ $db{$suchbegriff}->{$label} }, $anzahl;
}
close F or warn $!;
}

use Data::Dumper; $Data::Dumper::Sortkeys = 1;
print Dumper \%db;


ungetestet und direkt ins Forenfenster getippt, könnte aber zumindestens als Ansatz passen.\n\n

<!--EDIT|Crian|1116859436-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite

View full thread Probleme mit MLDBM