Font
[thread]7460[/thread]

Reportgenerator-Problem: Formatierung mit dem Reportgenerator

Reader: 1


<< |< 1 2 3 4 >| >> 33 entries, 4 pages
michael25
 2005-11-11 13:55
#59976 #59976
User since
2005-08-31
23 articles
BenutzerIn
[default_avatar]
Hallo zusammen,

ich habe ein kleines Problem mit dem Reportgenerator von Perl. Eine Variable x = "v1\nv2\nv3..." soll durch n Spalten (dynamisch) dargestellt werden. Ist n beispielsweise gleich 3, so soll die Ausgabe lauten:

v1 v2 v3
v4 v5 v6
...

Folgenden Code habe ich als Format verwendet. Die Variable maxLen gibt die Länge der Einträge an, values die Anzahl der Spalten. Im Hauptprogramm existiert dann wiederum eine Variable values, die die Werte durch Zeilenvorschub getrennt beinhaltet. Ich hab schon mit diesen Variablen "~~" und "^*" rumgebastelt, aber irgendwie ohne Erfolg. Kann mir da jemand helfen? Danke!

Code: (dl )
1
2
3
4
5
my $FORMATSTRING = "format OUTPUT = \n" .
('@' . '<' x $maxLen . " ") x $values .
"\n" .
'$values ' x $values .
"\n.\n";
renee
 2005-11-11 15:19
#59977 #59977
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
warum machst Du das nicht so:
Code: (dl )
1
2
3
4
5
6
my $n = 3;
my $counter = 1;
for(split(/\n/,$values)){
print $_, $counter % $n == 0 ? "\n" : "\t";
$counter++;
}
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/
GwenDragon
 2005-11-11 17:55
#59978 #59978
User since
2005-01-17
14668 articles
Admin1
[Homepage]
user image
[quote=renee,11.11.2005, 14:19]warum machst Du das nicht so:[/quote]
Wahrscheinlich weil der Reportgenerator (für Nicht-Profis) so schöne Listen ohne viel Aufwand erstellen kann.
michael25
 2005-11-11 21:29
#59979 #59979
User since
2005-08-31
23 articles
BenutzerIn
[default_avatar]
Vielen Dank, Renee, für den Tipp. Vielen Dank aber auch an GwenDragon, der ja freundlicherweise das Wort für mich ergriffen hat...

Ich glaube, dass der Report-Generator durchaus sinnvolle Dienste leistet (sowohl für "Profis" wie auch "Nicht-Profis") und wollte mich damit mal auseinandersetzen. Das Codebeispiel von meiner Frage war auf die wesentlichen Zeilen zusammengekürzt. Die Ausgabe soll durch Kopfzeilen, Fußzeilen, Seitenangaben usw. noch erweitert werden. Hierzu hielt ich den Reportgenerator eigentlich für das richtige Werkzeug.
J-jayz-Z
 2005-11-11 22:37
#59980 #59980
User since
2005-04-13
625 articles
BenutzerIn
[Homepage] [default_avatar]
[quote=michael25,11.11.2005, 20:29]Vielen Dank, Renee, für den Tipp. Vielen Dank aber auch an GwenDragon, der ja freundlicherweise das Wort für mich ergriffen hat...[/quote]
s/der/die/g;
GwenDragon ist eine der leider sehr wenigen Frauen in dieser Branche, sollte man würdigen :)
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
renee
 2005-11-12 07:00
#59981 #59981
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
@GwenDragon: Das habe ich noch nie benutzt und so ganz ohne Aufwand scheint es ja nicht zu sein *fg* Wenn Du Dich damit auskennst, kannst Du dann vielleicht den Wiki-Artikel mal fuellen, den jemand mal angefangen hat, ohne wirklich was reinzuschreiben: http://wiki.perl-community.de/bin....nerator
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/
GwenDragon
 2005-11-12 10:43
#59982 #59982
User since
2005-01-17
14668 articles
Admin1
[Homepage]
user image
[quote=J-jayz-Z,11.11.2005, 21:37][quote=michael25,11.11.2005, 20:29]Vielen Dank, Renee, für den Tipp. Vielen Dank aber auch an GwenDragon, der ja freundlicherweise das Wort für mich ergriffen hat...[/quote]
s/der/die/g;
GwenDragon ist eine der leider sehr wenigen Frauen in dieser Branche, sollte man würdigen :)[/quote]
Auch wenn es gerade OT ist:

@J-jayz-Z

Danke für den Hinweis. Bin auch ohne ein Mann zu sein kompetent. ;)

Ich weiß schon, warum in anderen Foren wenigstens ein Symbol für weiblich und männlich vorhanden ist.
Sicherlich gib es in Foren schon die Diskussion, warum das sein muss. Es passiert seltenst in einem technischen Forum, dass die anwesenden Herren verwechselt werden.
GwenDragon
 2005-11-12 11:10
#59983 #59983
User since
2005-01-17
14668 articles
Admin1
[Homepage]
user image
Unter http://perl-seiten.privat.t-online.de/html/perl_format.html
und http://www.infos24.de/perle/handbuch/15_reports.htm existieren diverse Beispiele zu Perls format.

Soll ich im Wiki das nochmals aufwärmen?

So ganz habe ich den Wunsch für den Wikieintrag nicht kapiert.
renee
 2005-11-12 11:20
#59984 #59984
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Der Wiki-Eintrag existiert anscheinend schon laenger. Da er schonmal da ist und kein brachliegendes Land sein soll, waere es ganz nett, wenn der Artikel mit Leben gefuellt werden wuerde. Keine Ahnung wer wann den Artikel angelegt hat. Muss nur schon laenger her sein, weil ich den Link bei Google gefunden habe...

War jetzt also nicht einfach so ein Wunsch nach einem Artikel...
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/
GwenDragon
 2005-11-12 11:31
#59985 #59985
User since
2005-01-17
14668 articles
Admin1
[Homepage]
user image
@michael25
Hattest du es so gemeint?
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Beispiel-Code
my $x = "v1\nv2\nv3\n";

my %vars;
my $varstring = '';

foreach ( split( /\n/, $x ) ) {
   $vars{$_} = $_;
   $varstring .= '$vars{' . $_ . '},';
}
chop($varstring); # letztes Komma entfernen


my $FORMATSTRING = "format OUTPUT = \n" .
                    ('@' . '<' x $maxLen . " ") x $values .
                   "\n" .
                   $varstring .
                   "\n.\n";
            
eval($FORMATSTRING);


//EDIT: Vertipper chomp -> chop geändert!\n\n

<!--EDIT|GwenDragon|1131789402-->
<< |< 1 2 3 4 >| >> 33 entries, 4 pages



View all threads created 2005-11-11 13:55.