Thread Parametersuche und/oder Parameterersetzen (8 answers)
Opened by MarkusH at 2014-05-02 11:20

payx
 2014-05-02 15:58
#175169 #175169
User since
2006-05-04
564 Artikel
BenutzerIn

user image
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
#!/usr/bin/perl

use strict;
use warnings;

my @rules = (
    [ {Wert2 => 20}, {Wert2 => 25}, {Wert4 => 4097} ]
    , [ {Wert1 => 10}, {Wert1 => 13}, {Wert4 => 4099} ]
);

while (my $row = <DATA>) {

    chomp $row;

    my %values = split /[= ]/, $row;
    
    for my $rule (@rules) {
    
        my ($alt, $neu, $bed) = @{$rule};
        
        my $alt_key = (keys %{$alt})[0];
        my $neu_key = (keys %{$neu})[0];
        my $bed_key = (keys %{$bed})[0];
        
        # $alt ist faktisch entweder auch eine Bedingung oder verzichtbar!
        if ($values{$alt_key} eq $alt->{$alt_key} and $values{$bed_key} eq $bed->{$bed_key}) {
            $values{$neu_key} = $neu->{$neu_key};
        }
    }
    for my $key (sort keys %values) {
        print "$key=$values{$key} ";
    }
    print "\n";
}
__DATA__
Wert1=10 Wert2=20 Wert3=30 Wert4=4096 Wert5=50 Wert6=60 Wert7=70 Wert8=80 Wert9=90
Wert1=10 Wert2=20 Wert3=30 Wert4=4097 Wert5=50 Wert6=60 Wert7=70 Wert8=80 Wert9=90
Wert1=10 Wert2=20 Wert3=30 Wert4=4098 Wert5=50 Wert6=60 Wert7=70 Wert8=80 Wert9=90
Wert1=10 Wert2=20 Wert3=30 Wert4=4099 Wert5=50 Wert6=60 Wert7=70 Wert8=80 Wert9=90
Wert1=10 Wert2=20 Wert3=30 Wert4=4090 Wert5=50 Wert6=60 Wert7=70 Wert8=80 Wert9=90

Code: (dl )
1
2
3
4
5
Wert1=10 Wert2=20 Wert3=30 Wert4=4096 Wert5=50 Wert6=60 Wert7=70 Wert8=80 Wert9=90 
Wert1=10 Wert2=25 Wert3=30 Wert4=4097 Wert5=50 Wert6=60 Wert7=70 Wert8=80 Wert9=90
Wert1=10 Wert2=20 Wert3=30 Wert4=4098 Wert5=50 Wert6=60 Wert7=70 Wert8=80 Wert9=90
Wert1=13 Wert2=20 Wert3=30 Wert4=4099 Wert5=50 Wert6=60 Wert7=70 Wert8=80 Wert9=90
Wert1=10 Wert2=20 Wert3=30 Wert4=4090 Wert5=50 Wert6=60 Wert7=70 Wert8=80 Wert9=90


Naja :-)

View full thread Parametersuche und/oder Parameterersetzen