Schrift
[thread]8220[/thread]

perl: leerzeilen entfernen (Seite 6)

Leser: 13


<< |< 1 ... 3 4 5 6 7 8 9 ... 12 >| >> 114 Einträge, 12 Seiten
renee
 2006-08-08 18:28
#68611 #68611
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=sabrina,08.08.2006, 13:55]Ich bekomme nicht die längsten Namen sondern immer den aus der ersten Spalte.
Egal ob ich mit oder ohne Leerstellen mache, der einzige Unterschied mit Leerzeichen bekomme ich nur einen Namen und ohne Leerzeichen bekomme ich die ganze spalte.
Sollte das so sein?
Kann es daran liegen das ich die erste Zeile deines codes weggelassen habe?
Wahrscheinlich schon stimmt&acute;s?
Kannst du bitte mal kurz drueber schauen, wäre lieb.

@pq
Hast ja recht aber eigendlich hab ich grad ganz andere Dinge im Kopf als Rechtschreibung.
Und, da, ich, Komma, eh, meist, falsch, setzte,dacht, ich:, schreib, lieber,keine.
ERGAENZUNG
3. Nach Punkt GROSSSCHREIBEN:D :p[/quote]
Bei so etwas ist es immer ganz praktisch, wenn Du Code und Daten postest. Mit Deiner Beschreibung kann man nichts anfangen, da man nur Vermutungen anstellen kann.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Crian
 2006-08-08 18:33
#68612 #68612
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Ich würde mal empfehlen, weniger panisch an die Sache ranzugehen. Am besten du liest dich erstmal ein, um eigenes Grundwissenlernen ist hier keiner rumgekommen.

Ist nicht böse gemeint, aber so wirst du nicht weit kommen.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
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-->
sabrina
 2006-08-09 15:21
#68614 #68614
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
@crian
ich bin nur "panisch", weil ich im praktikum meine aufgabe einfach gut loesen moechte und ich komm einfach nicht weiter, sonst haette ich mich nicht hier angemeldet hab einfach noch kein gefuehl dafuer, bin schon am lesen aber mom. ist das alles noch japanisch fuer mich. war auch den ganzen morgen auf deiner seite, werde mir die artikel wohl immer mal wieder anschauen, ich konnte auch noch nicht alles lesen, die ist ja riessig hoffe ich find da noch ein paar infos. als ich vor zwei wochen angefangen habe, haette ich nicht gedacht das es fuer perl so viele seiten gibt, zumal in meinen vorlesungen nie ein wort ueber perl gefallen ist.


@renee
habs auch schon auf deine weise versucht aber es hat nicht geklappt,
es kam zwar keine fehlermeldung dafuer aber auch keine ausgabe.

lg sabrina

@
renee
 2006-08-09 15:29
#68615 #68615
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie sehen denn Deine Eingangsdaten aus?? Poste einfach mal ein paar Zeilen aus der Datei, die Du einliest.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
sabrina
 2006-08-09 15:40
#68616 #68616
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
@renee
Mailbox Last Logged on By Size (KB) Total Items Last Logon Time Last Logoff Time
Auermann Bianca domain\benutzername 32 016 85 5.7.2006 16:36 5.7.2006 16:36
Buselmaier Maria domain\benutzername 66 715 457 6.7.2006 6:31
Administrator Stadt domain\benutzername 12 025 194 9.5.2006 18:35 9.5.2006 18:36



so sieht meine datei aus. nachname und vorname muss ich noch trennen am besten bei split mit einfuehren. ich brauch auch nur die daten bis size(KB) denn rest werd ich mit pop loeschen.
renee
 2006-08-09 15:46
#68617 #68617
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Also das hier funktioniert definitiv mit den Daten die Du gepostet hast:
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
#!/usr/bin/perl

use warnings;
use strict;

my @data;
my $file = 'mailbox.txt';

open(my $fh,'<',$file) or die $!;
while(my $line = <$fh>) { # alles was unten in __DATA__ steht symbolisiert eine Datei
chomp $line;
my @array = (split(/\s+/,$line))[0..2];

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

push(@data,[@array]);
} # while
close $fh;


my $len_vorname = find_longest(map{$_->[0]}@data);
my $len_nachname = find_longest(map{$_->[1]}@data);
my $len_domain = find_longest(map{$_->[2]}@data);

for my $entry(@data){
print sprintf("%-*s %-*s %-*s<<\n",$len_vorname,$entry->[0],
$len_nachname,$entry->[1],
$len_domain,$entry->[2]);
}

sub find_longest{
my $longest = 0;
for(@_){
my $length = length($_);
$longest = $length if($length > $longest);
}

return $longest;
}
\n\n

<!--EDIT|renee|1155124059-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2006-08-09 15:52
#68618 #68618
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=sabrina,09.08.2006, 13:04]@havi
das ist mein script:
Code: (dl )
1
2
3
4
5
6
7
[...]
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";

[...]

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!

[/quote]
Du hast ja auch zwei print-Statements
Quote
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.

Das kommt daher, dass Du versuchst an % zu splitten und nicht am Leerzeichen. Du musst auch schauen, dass Du das was hier geschrieben wird, richtig abtippst. Wenn Du an % splittest, gibt es keinen Wert in $data[1] und $data[2]. Daher kommt der nicht-initialisierte Wert.
Quote
numeric heist doch er will das ich zahlen schreibe oder?

Nee, Du schreibst die Zahl nicht, sondern versuchst in der Subroutine left einen Längenvergleich zu machen. Und da in $_[0] kein initialisierter Wert steht (aus gleichem Grund wie oben, kommt diese Warnung.\n\n

<!--EDIT|renee|1155124394-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
sabrina
 2006-08-09 15:58
#68619 #68619
User since
2006-08-03
264 Artikel
BenutzerIn
[default_avatar]
@renee danke danke danke bin schon die ganze zeit an irgendwas aendern aber die zwei print hab ich total uebersehen probiers gleich mal aus

danke lg sabrina
Crian
 2006-08-09 18:22
#68620 #68620
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Ok, wenn du etwas im Rahmen eines Praktikums fertig bekommen möchstest, kann ich das gut verstehen, es schwang halt nur etwas Panik durch, die unnötig wäre, wenn du keinen zeitlichen Druck von außen hättest :-)

Das Problem ist vermutlich, am Anfang das richtige zu lesen, da es wie du schon gesagt hast, sehr viel zu Perl gibt. Allerdings ist eine Kreuzundquerschau auch nicht schlecht, wenn du dann später bei auftauchenden Problemen im Hinterkopf hast, wo dazu was stand bzw. wie du danach sucht.

Das wird sich schon alles ordnen, auf jedenfall wünsch ich viel Spaß mit Perl, es ist eine sehr schöne Sprache, finde ich :-)\n\n

<!--EDIT|Crian|1155133611-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 ... 3 4 5 6 7 8 9 ... 12 >| >> 114 Einträge, 12 Seiten



View all threads created 2006-08-07 10:33.