Thread letzte Spalte in jeder zeile ändern: die zahlen durch best. zahl teilen (57 answers)
Opened by sabrina at 2006-10-18 18:37

sabrina
 2006-10-18 18:37
#70925 #70925
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
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

View full thread letzte Spalte in jeder zeile ändern: die zahlen durch best. zahl teilen