Schrift
[thread]6251[/thread]

formatierte Ausgabe auf Konsole?

Leser: 1


<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten
Math55
 2004-05-12 15:28
#82286 #82286
User since
2003-08-19
44 Artikel
BenutzerIn
[default_avatar]
hi, ich hab das problem, das ich mich format = <STDOUT>.... nicht ganz zruecht kommme. ich habe eine config datei, die sieht so aus:


wort1
wort2
wort3
wort4
wort5
wort6
wort7
wort8


nach dem auslesen,soll das dann auf der konsole so ausgegeben werden:


1 wort1 2 wort2 3 wort3
4 wort4 5 wort5 6 wort6
7 wort7 8 wort8

wobei dazwischen ein tab sein soll. wie stell ich das nun wieder an?

DANKE:)
esskar
 2004-05-12 15:52
#82287 #82287
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
print "1 wort1\t2 wort2\t3 wort3\n";
print "4 wort4\t5 wort5\t6 wort6\n";
print "7 wort1\t8 wort2\n";
renee
 2004-05-12 15:54
#82288 #82288
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
my $i = 1; 
foreach(@words){
 print $i," ",$_;
 print $i % 3 == 0 ? "\n" : "\t";
$i++;
}
\n\n

<!--EDIT|renee|1084362912-->
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/
Math55
 2004-05-12 16:13
#82289 #82289
User since
2003-08-19
44 Artikel
BenutzerIn
[default_avatar]
hallo, danke erstmal. so ähnlich hatte ich es auch, allerdings verrutschen dann die wörte manchmal.....es sollte was sein, was immer gleich aussieht.
da ich auch nicht weiss, wie lang die datei wird, also wieviele zeilen drin sind.....

DANKE:-)
renee
 2004-05-12 16:23
#82290 #82290
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Kannst Du wenigstens sagen, wie lang das längste Wort ist, sonst wirst Du es nie 100%ig machen können. Hier mal ein Ansatz...
Code: (dl )
1
2
3
4
5
6
7
8
my $i = 1; 
foreach my $word(@words){
$word = ' ' x (10 - length($word)).$word;
$i = sprintf("%5d",$i);
print $i," ",$word;
print $i % 3 == 0 ? "\n" : "\t";
$i++;
}
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/
esskar
 2004-05-12 16:30
#82291 #82291
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=renee,12.05.2004, 14:23]Kannst Du wenigstens sagen, wie lang das längste Wort ist[/quote]
naja, wenn nicht auf anhieb, dann zumindest dann, wenn er die datei erstmal einmal durchläuft und das längste wort findet!
Crian
 2004-05-12 16:31
#82292 #82292
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Config-Datei klingt nicht nach irre lang. Die kann man einfach in den Speicher einlesen und die längste Zeile ermitteln. Oder zweimal durchlesen, erst Länge ermitteln, dann ausgeben. Dann klappts auch mit 3GB großen Dateien.
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
Math55
 2004-05-12 16:34
#82293 #82293
User since
2003-08-19
44 Artikel
BenutzerIn
[default_avatar]
so, also ich habe jetzt das längste wort gefunden.....wie stell ich es nun an?
sagen wir mal, das längste wort ist 7 zeichen lang, dann kommt es ja noch auf die nummer davor an, die kann ja von 1 bis 999..... gehen. da bietet es sich an, die mit in die datei zu schreiben, oder?

DANKE\n\n

<!--EDIT|Math55|1084365975-->
esskar
 2004-05-12 16:53
#82294 #82294
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
brauchst du nicht...

Code: (dl )
1
2
3
4
# $maxwordlen: länge des längsten wortes
# $wordcount: anzahl der wörter in datei

my $len = $maxwordlen + length($wordcount);


und schon hast du eine länge, die auf jeden Fall funzt!
renee
 2004-05-12 16:55
#82295 #82295
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Bei mir wird die Zahl schon auf 5 Zeichen "gestreckt"...
Code: (dl )
1
2
3
4
5
6
7
8
9
my $i = 1; 
my $longest = 7; # länge des längsten wortes
foreach my $word(@words){
 $word = ' ' x ($longest - length($word)).$word;
 $i = sprintf("%5d",$i); # hier wird die Zahl auf 5 Stellen "getrimmt"
 print $i," ",$word;
 print $i % 3 == 0 ? "\n" : "\t";
 $i++;
}


wenn man das längste Wort noch nicht kennt, kann man das so ermitteln (besser gesagt die Länge des längsten Wortes):
Code: (dl )
1
2
3
4
my $longest = 0;
foreach(@words){
 $longest = length($_) if(length($_) > $longest);
}
\n\n

<!--EDIT|renee|1084366617-->
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/
<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten



View all threads created 2004-05-12 15:28.