Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6440[/thread]

Trefferanzahl: Wie viele Zeilen hat mein String



<< >> 9 Einträge, 1 Seite
root
 2004-07-29 16:24
#85062 #85062
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Hallo, ich bin mir sicher ich habe nur die falschen Begriffe in die Suche eingegeben, nun aber trotzdem meine Frage:

Ich habe eine Variable $variable, darin befindet sich Text mit vielen "\n\r" (Zeilenumbrüchen) nun möchte ich wissen wie viele!

Splitte ich die $variable bei "\n\r" und mache dann
my $anzahl = @splittergebnis;

oder mache ich m/\n\r/g und wie bekomme ich dort die Trefferanzahl zurück?

Danke für die Antwort(en)!

Greetings
renee
 2004-07-29 16:33
#85063 #85063
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
z.B.
Code: (dl )
1
2
3
4
5
6
my $var = qq~dies
ist
ein test~;

my $count = () = $var =~ /\r?\n/g;
print $count,"\n";
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/
root
 2004-07-29 16:42
#85064 #85064
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Was macht das () ???

Ich habe jetzt doch das gemacht:
$html{'rows'} = split /\n\r?/, $news{'haupttext'};

Doof ist nur, dass ich mein eigenes Problem nicht verstanden habe. Ich wollte eigentlich einem HTML-Textfeld immer so viele Zeilen geben, dass es keinen Scroller anzeigt. Leider ist das ein Zeilenumbruch ohne Zeichen dafür...
Dazu kommt, dass es via css die Arial als Font bekommen hat. Also kann ich auch nicht von einer fetsen Zeichenanzahl pro Zeile ausgehen. Da hab ich keine Chance, oder?
kabel
 2004-07-29 16:53
#85065 #85065
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
() erzwingt listenkontext. damit liefert der match ein array mit den gematchten strings zurueck.
durch die letzte zuweisung wird das ganze in skalaren kontext gepresst.
-- stefan
Relais
 2004-07-29 16:55
#85066 #85066
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=root,29.07.2004, 14:42]Was macht das () ???[/quote]
Ahoi. Genau wissen wir es nicht, aber es wandelt magischen Listenkontext irgendwie derart in scalaren um, daß es perl an jener Stelle nicht verwirrt.

Quote
Ich habe jetzt doch das gemacht:
$html{'rows'} = split /\n\r?/, $news{'haupttext'};

Split gibt eine Liste zurück, "$html{'rows'}" ist aber Scalar, das wird so nix. Merke
@ergebnisse = split ....

Quote
Dazu kommt, dass es via css die Arial als Font bekommen hat. Also kann ich auch nicht von einer fetsen Zeichenanzahl pro Zeile ausgehen. Da hab ich keine Chance, oder?

Mit einem komplexeren Algrithmus vielleicht, der die Breiten der einzelnen Zeichen kennt?
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
root
 2004-07-29 17:09
#85067 #85067
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Hi Sören!

$html{'rows'} = split /\n\r?/, $news{'haupttext'};

Ist doch gut wenn ich die Anzahl von dem imaginären @_ haben will, oder???

Es kommt eine Zahl raus!

Das mit den verschiedenen Größen den verschiedenen Zeichen ist mir echt zu wild - die Idee ist aber erstklassig und sicher gar nicht soooo schwer. Es gibt ja Hashes in Perl :-)

Grüße
Dubu
 2004-07-29 19:26
#85068 #85068
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Noch eine Anmerkung:
Zeilentrenner unter Windows und in vielen Netzwerkprotokollen ist <CR><LF> (Carriage Return, Line Feed), was sich unter einigen Perl-Varianten mit "\r\n" abkuerzen laesst. Besser ist jedenfalls die Schreibweise "\015\012" oder "\cM\cJ".

Auf jeden Fall ist es in den ueblichen Faellen nicht <LF><CR>, resp. "\n\r". Wenn du das \r optional machst (wie in /\n\r?/), dann wird einfach an den \n getrennt und das \r ignoriert - der Regulaere Ausdruck passt also zufaelligerweise trotzdem. Besser macht es das aber nicht.
[E|B]
 2004-07-29 19:47
#85069 #85069
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Mich wundert, dass das implizite Abfragen von @_ von root schneller ist als die lexikalische Lösung von renee.

Quote
Benchmark: timing 1000000 iterations of renee, root...
renee: 16 wallclock secs (14.55 usr + 0.00 sys = 14.55 CPU) @ 68742.70/s (n=1000000)
root: 8 wallclock secs ( 7.55 usr + 0.00 sys = 7.55 CPU) @ 132520.54/s (n=1000000)
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
root
 2004-07-29 23:24
#85070 #85070
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Ohh man, ihr geht ja mal wieder voll ab!!!
Diese Speed-Dikussionen habe ich nie verstanden!
Hardcore!

Natürlich erst den Rücklauf! Das sind die Fehler die mich noch in den Wahnsin treiben :-)

Vielen Dank!
<< >> 9 Einträge, 1 Seite



View all threads created 2004-07-29 16:24.