![]() |
|< 1 2 >| | ![]() |
19 Einträge, 2 Seiten |
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
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/perl
use warnings;
use strict;
my @data;
my $columns = 5;
open(FH,"<blubber.txt") or die $!; #oeffnen der datei
while(my $line = <FH>)
{
chomp $line; #entfernt \n
my @array = (split(/[\t\s\\]/,$line))[0..($columns-1)];
# splitet nach taps, leerzeichen und backslash
foreach (@array)
{
s/^\s+/;/g; # fuehrende und
s/\s+$/;/g; # abschliessende Blanks (beides entfernen und durch ";" ersetzen)
} # foreach
push(@data,[@array]);
} # while
close (FH);
my $format = '';
for my $i(0..scalar(@{$data[0]})-1)
{ #hier wird das format festgelegtund linksbuendig
my $max = find_longest(map{$_->[$i]}@data);
$format .= '%-'.$max.'s ';
}
for my $entry(@data)
{
print sprintf($format . "<<\n",@$entry);
}
sub find_longest
{ # hier wird der laengste inhalt des feldes berechnet
my $longest = 0;
for(@_){
my $length = length($_);
$longest = $length if($length > $longest);
}
return $longest;
}
open(FH, "<blubber.txt") or die "Fehler beim oeffnen/anlegen: $!";
open(OUTDATEN, ">ZIEL.txt") or die "Fehler beim oeffnen/anlegen: $!";
while(<FH>)
{
print OUTDATEN @data;
}
close (OUTDATEN)or die $!;
close (FH)or die $!;
open(OUTDATEN, ">ZIEL.txt") or die "Fehler beim oeffnen/anlegen: $!";
open(OUTDATEN, "+>", "ZIEL.txt") or die "Fehler beim oeffnen/anlegen: $!";
open(OUTDATEN, ">ZIEL.txt") or die "Fehler beim oeffnen/anlegen: $!";
open(OUTDATEN, "+>", "ZIEL.txt") or die "Fehler beim oeffnen/anlegen: $!";
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
48
49
50
51
52
53
54
55
56
#!/usr/bin/perl
use warnings;
use strict;
my @data;
my $columns = 5;
open(FH,"<blubber.txt") or die $!; #oeffnen der datei
while(my $line = <FH>)
{
chomp $line; #entfernt \n
my @array = (split(/[\t\s\\]/,$line))[0..($columns-1)];
# splitet nach taps, leerzeichen und backslash
foreach (@array)
{
s/^\s+/;/g; # fuehrende und
s/\s+$/;/g; # abschliessende Blanks (beides entfernen und durch ";" ersetzen)
} # foreach
push(@data,[@array]);
} # while
close (FH);
my $format = '';
for my $i(0..scalar(@{$data[0]})-1)
{ #hier wird das format festgelegtund linksbuendig
my $max = find_longest(map{$_->[$i]}@data);
$format .= '%-'.$max.'s ';
}
# Ich verwende einen Skalar als Filehandle,
# Du kannst aber statt $out_fh auch OUTDATEN
# schreiben
open(my $out_fh,'>','Ziel.txt') or die $!;
for my $entry(@data)
{
print sprintf($format . "<<\n",@$entry); # Ausgabe auf Bildschirm
print $out_fh sprintf($format . "<<\n",@$entry); # Ausgabe in Datei
}
close $out_fh or die $!;
sub find_longest
{ # hier wird der laengste inhalt des feldes berechnet
my $longest = 0;
for(@_){
my $length = length($_);
$longest = $length if($length > $longest);
}
return $longest;
}
1
2
3
4
5
6
7
8
9
open(FH, "<blubber.txt") or die "Fehler beim oeffnen/anlegen: $!";
open(OUTDATEN, ">ZIEL.txt") or die "Fehler beim oeffnen/anlegen: $!";
for my $entry(@data)
{
print OUTDATEN sprintf($format . "<<\n",@$entry); #ausgabe in datei
}
close (OUTDATEN)or die $!;
close (FH)or die $!;
![]() |
|< 1 2 >| | ![]() |
19 Einträge, 2 Seiten |