for Schleife
Franz Philipp
- perl
0 Reiner0 Andres Freund0 Franz Philipp0 Reiner
0 Struppi
Tach auch,
ich muss grade was in Perl basteln und stehe mit programierung auf dem Kriegsfuss.
Ich habe 25 Artikel, die ich oben im Script definiere
my $namart1 = "HP EVO N1050V CEL-1.6G 30GB" ;
my $preisart1 = 990.00 ;
my $artno1art1 = "114093" ;
my $artno2art1 = "DC767T#ABD" ;
jetzt will ich nach Berechnung von Anzahl mit Preis und Mehrwertsteuer die Gesammte Bestellung in einer HTML Seite auflisten
if ($anzart1 > 0) {
print "</CENTER></CENTER><TR>";
print "<TD>";
print "<table border=1 cellspacing=0 cellpadding=0>";
print "</td>";
print "<td bgcolor="#FFC800" width=25 nowrap>";
print "<FONT FACE="Arial" SIZE=2 color="#000000">";
print "$anzart1";
print "</td>";
print "</tr></table>";
}
Da ich nicht glauben kann, dass man das für jeden Artikel einzeln machen muss, hier meine Frage, wie stell ich das in eine for Schleife, dass jeweils die 1 (in z.B. $anzart1) in eine 2 bzw. 3, 4 usw. ersetzt wird bzw. wie mach ich das, dass es analog zu for i = 1 to 25 läuft ???????
Wenn mir da jemand weiter helfen könnte, hätte er meine absolute Dankbarkeit.
Gruß Franz Philipp
P.S. Sorry für die ausführliche Fragestellung, aber ich dachte es soll auch jemand kapieren was ich will.
Tach auch,
ich muss grade was in Perl basteln und stehe mit programierung auf dem Kriegsfuss.
Ich habe 25 Artikel, die ich oben im Script definiereArtikel 1 - 25 jeweils untereinander aufgelistet
my $namart1 = "HP EVO N1050V CEL-1.6G 30GB" ;
my $preisart1 = 990.00 ;
my $artno1art1 = "114093" ;
my $artno2art1 = "DC767T#ABD" ;jetzt will ich nach Berechnung von Anzahl mit Preis und Mehrwertsteuer die Gesammte Bestellung in einer HTML Seite auflisten
if ($anzart1 > 0) {
print "</CENTER></CENTER><TR>";print "<TD>";
print "<table border=1 cellspacing=0 cellpadding=0>";
print "</td>";
print "<td bgcolor="#FFC800" width=25 nowrap>";
print "<FONT FACE="Arial" SIZE=2 color="#000000">";
print "$anzart1";
print "</td>";Bla bla Spaltenweise weiter nach rechts mit den restlichen Angaben - hab ich
print "</tr></table>";
}Da ich nicht glauben kann, dass man das für jeden Artikel einzeln machen muss, hier meine Frage, wie stell ich das in eine for Schleife, dass jeweils die 1 (in z.B. $anzart1) in eine 2 bzw. 3, 4 usw. ersetzt wird bzw. wie mach ich das, dass es analog zu for i = 1 to 25 läuft ???????
Wenn mir da jemand weiter helfen könnte, hätte er meine absolute Dankbarkeit.
Gruß Franz Philipp
P.S. Sorry für die ausführliche Fragestellung, aber ich dachte es soll auch jemand kapieren was ich will.
Hi,
ganz einfach:
for ($i=1; $i<25; $i++)
{
print <<_ENDE_;
[...]
${'anzart'.$i}
[...]
_ENDE_
}
Da sind direkt zwei Tricks drin. Zunächst zu Deiner Frage, das steht zwischen den [...] und das drumherum nennt man hier-Anweisung (oder here?).
Gruß
Reiner
Hi,
P.S. Sorry für die ausführliche Fragestellung, aber ich dachte es soll auch jemand kapieren was ich will.
Finde ich gut, dann weiß man genau, was das Problem ist, und man muss nicht ers seine Glaskugel herausholen;-)
Aber nun zum Problem. Ich würde das die Daten eher in Arrays aufbewahren, die sind für soetwas eher gedacht.
Andres Freund
Sorry Leute,
ich bin zwar ein diletant, aber ich häng da fest, kuck mal bitte einer der Ahnung von sowas hat.
for ($i=1; $i<$gesartikel; $i++)
{
print <<_ENDE_ ;
my ${'suart'.$i} += {'anzart'.$i} * {'preisart'.$i} ;
_ENDE_
}
Danke im Voraus
Gruß FP
Sorry Leute,
ich bin zwar ein diletant, aber ich häng da fest, kuck mal bitte einer der Ahnung von sowas hat.for ($i=1; $i<$gesartikel; $i++)
{
print <<_ENDE_ ;
my ${'suart'.$i} += {'anzart'.$i} * {'preisart'.$i} ;
_ENDE_
}
ist das eine zweite Frage?
Schieb mal das zweite "_ENDE_" an den Zeilenanfang! OHNE Space dahinter, ist einer der häufigsten Fehler!!!
Gruß
Reiner
Tach auch,
ich muss grade was in Perl basteln und stehe mit programierung auf dem Kriegsfuss.
Ich habe 25 Artikel, die ich oben im Script definiereArtikel 1 - 25 jeweils untereinander aufgelistet
my $namart1 = "HP EVO N1050V CEL-1.6G 30GB" ;
my $preisart1 = 990.00 ;
my $artno1art1 = "114093" ;
my $artno2art1 = "DC767T#ABD" ;
Das willst du nicht wirklich so machen????
Du kennst Arrays? Und in Perl noch mächtiger HASHes?
das was du als Lösung angeboten bekommen hast ist ein allerletzer Notnagel, der nur angewand werden sollte, wenn man genau weiss was man tut, was ich aber in deinem Falle bezweifeln darf.
Dein Datenstruktur kann z.b. so aussehen:
my @artikelListe = (
{
name => "HP EVO N1050V CEL-1.6G 30GB",
preis => 990.00,
no1 => "114093",
no2 => "DC767T#ABD",
anzahl => 1
},
{
name => "HP EVO N1050V CEL-1.6G 30GB",
preis => 990.00,
no1 => "114093",
no2 => "DC767T#ABD"
anzahl => 1
},
);
jetzt will ich nach Berechnung von Anzahl mit Preis und Mehrwertsteuer die Gesammte Bestellung in einer HTML Seite auflisten
print "<FONT FACE="Arial" SIZE=2 color="#000000">";
Nebenbei, das Font Tag ist veraltet und sollte angesichts von CSS nicht mehr verwendet werden.
foreach my $artikel(@artikelListe)
{
next unless $artikel->{anzahl};
print <<TEXT;
<tr>
<td>$artikel->{no1}
</td><td>
$artikel->{name}
</td><td>
$artikel->{preis}
</td><td>
$artikel->{anzahl}
</td></tr>
<br>
TEXT
}
Les mal die Hilfe Dokumente über Variabeln, Datentypen, Listen usw. du findest (wenn du Perl installiert hast) die Doku auf deiner Festplatte.
Ansonsten wirst du mit Perl nicht glücklich werden.
Struppi.