Thread letzte Spalte in jeder zeile ändern: die zahlen durch best. zahl teilen
(57 answers)
Opened by sabrina at 2006-10-18 18:37
Ich möchte die Letzte Spalte in jeder Zeile durch 1024 teilen, damit ich die dort angegebenen KB in MB umrechnen kann.
Wie kann ich das Perl am besten sagen, ich möchte allerdings Zahlen in anderen Spalten nicht ändern. 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 warnings; use strict; my @data; my $columns = 5; open(FH,"<BLUBBER.txt") or die $!; while(my $line = <FH>) { chomp $line; my @array = (split(/[\t\s\\]/,$line))[0..($columns-1)]; foreach (@array) { s/^\s+/;/g; s/\s+$/;/g; } # foreach if ($line =~/\bBLUBB|SAND?\b/ and $line !~/\bMUSCHEL\b/){ push(@data,[@array]); } # if } # while close (FH); my $format = ''; for my $i(0..scalar(@{$data[0]})-1){ my $max = find_longest(map{$_->[$i]}@data); $format .= '%-'.$max.'s '; } for my $entry(@data){ print sprintf($format . "\n",@$entry); } open(OUTDATEN,">ZIEL.txt") or die $!; for my $entry(@data) { print OUTDATEN join(';',@$entry),"50","\n"; } close (OUTDATEN) or die $!; sub find_longest{ my $longest = 0; for(@_){ my $length = length($_); $longest = $length if($length > $longest); } return $longest; } @renee hast du meine antwort in perlunity gelesen? Da nichts mehr kam dachte ich mir ich probiers hier noch mal. Bin hier nur nicht so flexibel. Da Perl community im geschäft nicht läuft. Hat mir jemand einen Tipp welche funktion ich nehmen muss splice wird es wohl nicht sein. Würde mich über jede antwort freuen. lg sabrina |