Thread perl: leerzeilen entfernen (113 answers)
Opened by sabrina at 2006-08-07 10:33

sabrina
 2006-08-09 15:04
#68613 #68613
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
@havi
das ist mein script:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/perl-w
use strict;
use warnings;
my @array = ('Nachname','Vorname','domain','usw',);
my @_daten = (""); # Speicher fuer alle Datensaetze

my @matrix = (\@array,\@_daten); #stopf die beiden arrays in ein array

open(DATEN, "<blubb.txt") or die "Datei nicht gefunden\n";
while(<DATEN>) {

chomp;

my @matrix = ();
@matrix = split(/%/); # $_ ist standard

foreach (@matrix) {
s%^\s+%%g; # fuehrende und
s%\s+$%%g; # abschliessende Blanks entfernen
} # foreach

print left($matrix[0],90).left($matrix[1],90).left($matrix[2],90), "\n";
# und zum Beweis das die Leerstellen weg sind
#print "BEWEIS\n";
print "$matrix[0];$matrix[1];$matrix[2]\n";

} # while



sub left {
my $r = $_[0];

while(length($r) < $_[0]) {$r.=' '}
$r;
} # left



print "@{$matrix[0]}\n";
print "@{$matrix[1]}\n";

close(DATEN);


# open (DATEN,"<blubb.txt");
# open(NEU,">dieneuedatei.txt");

# while(<DATEN>){
# print NEU @_daten;
# }

# close (NEU);
# close (DATEN);

hab es auf 90 geaendert

und das kommt dabei raus,(nur mal die ersten vier):
Code: (dl )
1
2
3
4
mustermann Bernd        blaDomain        32 016        85        5.7.2006  16:36        5.7.2006  16:36
mustermann Bernd blaDomain 32 016 85 5.7.2006 16:36 5.7.2006 16:36;;
maier Gerhard blubbDomain 66 715 457 6.7.2006 6:31
maier Gerhard blubbDomain 66 715 457 6.7.2006 6:31;;

jeder Name wird zweimal geschrieben, mit einem unterschied hinter der letzten zahl steht in der zweiten version immer zwei ;;
komisch!
und miten in der datei kommt dann mal sowas:

Use of uninitialized value in length at C:\DOCUME~1\benutzername
\LOCALS~1\Temp\dzprltmp.pl line 34, <DATEN> line 33.
Use of uninitialized value in numeric lt (<) at C:\DOCUME~1\benutzername\LOCALS~1\Temp\dzprltmp.pl line 34, <DATEN> line 33.

numeric heist doch er will das ich zahlen schreibe oder?\n\n

<!--EDIT|renee|1155122888-->

View full thread perl: leerzeilen entfernen