Schrift
[thread]386[/thread]

Jede zweite Zeile eines Arrays anders formatieren

Leser: 1


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
cbxk1xg
 2004-12-19 23:14
#3826 #3826
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Hallo Freunde der Sonne,

ich stehe gerade etwas auf dem Schlauch. Ich habe ein mehrdimensionales Array und will den Inhalt zeilenweise ausgeben. So weit so gut. Nun soll aber jede zweite Zeile anders formatiert werden. Also etwa so:

@array = ("Wert1", "Wert2", "Wert3");

Code: (dl )
1
2
3
4
5
<table border="0" cellpadding="0" cellspacing="0">
<tr><td>Zeile 1</td></tr>
<tr><td bgcolor="#EBF1FC">Zeile 2</td></tr>
<tr><td >Zeile 3</td></tr>
</table>


Ich habe mir überlegt jeder zweiten Zeile einen zusätzlichen Wert anzuhängen. Z.B. die Hintergrundfarbe der Tabellenzeile.
lichtkind
 2004-12-19 23:42
#3827 #3827
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
was du im detail mache willst tut nichts dazu.
geh einfach mit dem iterator durch den array und fang immer 2 zeilen ab
die du unterschiedlich ausgibst.

ich interpretier mal dein angabe als "ohne wert 0" also @array[1..$#array] arrays können von print auch komplett ausgegeben werden, vieleicht vorher casten a la @{$array[n]}
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
cbxk1xg
 2004-12-20 00:00
#3828 #3828
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
[quote=lichtkind,19.12.2004, 22:42]ich interpretier mal dein angabe als "ohne wert 0" also @array[1..$#array] arrays können von print auch komplett ausgegeben werden, vieleicht vorher casten a la @{$array[n]}[/quote]
Häh? Sorry, aber ich verstehe nicht mal ansatzweise was Du meinst.

Also mein Array sieht so aus:
Code: (dl )
1
2
3
4
5
-----------------------------------
| $Array[0]  -  Wert1|Wert2|Wert3 |
| $Array[1]  -  Wert1|Wert2|Wert3 |
| $Array[2]  -  Wert1|Wert2|Wert3 |
-----------------------------------


Da ich aber nicht weiss wie viele Zeilen es letztendlich sind, kann ich mit [1] nichts anfangen. Das würde ja nur die zweite Zeile ansprechen, nicht aber JEDE zweite Zeile.
lichtkind
 2004-12-20 00:22
#3829 #3829
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
ich versteh auch vieles nicht

wieso weisst du nicht wie viele zeilen es letztlich sind wenn sie aus dem array gespeist werden?

das zweite missverständnis war wohl das du den ersten wert deiner subarray wert 1 nennst ich dachte das wäre wert0.

aber etwas mehr info wäre nicht schlecht.

jeder zweite zeile ansprechen wäre

for (0..int($#Array/2)){
$Array[$_*2]
}\n\n

<!--EDIT|lichtkind|1103495006-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
cbxk1xg
 2004-12-20 00:23
#3830 #3830
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Also ich hab's folgendermaßen gelöst...

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
my row = "";
my $count = 1;
my $switch;

for ($i=0; $i < $max; $i++)
{
($href, $text, $function) = split( "\e", $filelist[$i+$j*$max], 3 );

    if ($switch)
    {
    $switch=0;
    $row .= qq|<tr><td bgcolor="#FFFFFF"><a href="$function">function</a> - <a href="$href" class="FileList">$text</a></td></tr>;
    $count++;
    }
    
    else
    {
    $switch=1;
    $row .= qq|<tr><td bgcolor="#E1E1E1"><a href="$function">function</a> - <a href="$href" class="FileList">$text</a></td></tr>;
    $count++;
    }
}


Ich zähle einfach bei der Ausgabe, anstatt vorher.\n\n

<!--EDIT|cbxk1xg|1103495126-->
lichtkind
 2004-12-20 00:40
#3831 #3831
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
my row = "";
my $count = 1;
my $switch;

for (0 .. $max-1) {
($href, $text, $function) = split( "\e", $filelist[$_+$j*$max], 3 );

if ($switch) {
$row .= qq|<tr><td bgcolor="#FFFFFF"><a href="$function">function</a> - <a href="$href" class="FileList">$text</a></td></tr>;
}
else {
$row .= qq|<tr><td bgcolor="#E1E1E1"><a href="$function">function</a> - <a href="$href" class="FileList">$text</a></td></tr>;
}

$switch ^= 1;
$count++;
}


kann man sicher noch weiter vereinfachen
wozu brauchst du noch count?
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
lichtkind
 2004-12-20 00:46
#3832 #3832
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
my row = "";
my $switch;

for (0 .. $max-1) {
($href, $text, $function) = split( "\e", $filelist[$_+$j*$max], 3 );
if ($switch) { $row .= qq|<tr><td bgcolor="#FFFFFF">; }
else { $row .= qq|<tr><td bgcolor="#E1E1E1">; }
$row .= qq|<a href="$function">function</a> - <a href="$href" class="FileList">$text</a></td></tr>;
$switch ^= 1;
}
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
lichtkind
 2004-12-20 00:48
#3833 #3833
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
jetzt muss ich nur noch wissen wozu und woher max kommen, denn du scheinst einiges nicht zu kennen was perl so bietet,
vielleicht ist es sogar besser deine daten in wirklich mehrdimensionalen arrays zu speichern
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
cbxk1xg
 2004-12-20 02:11
#3834 #3834
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
$max ist nix kompliziertes. Das ist nur dazu gedacht mehrere Spalten zu erzeugen. Wenn also eine gewisse Anzahl an Dateien vorhanden ist, dann werden diese in eine neue Spalte geschrieben. Aber halt nur bis maximal $max -Spalten. Der User kann die Anzahl der Spalten ($max) selber festlegen.

Das ganze funktioniert im Kontext eines Dateibrowsers via Web.


Hatte noch was vergessen:
Du hast natürlich Recht. $count ist absolut überflüssig! Mehrdimensionale Arrays brauche ich in diesem Fall nicht. Es ist nur eine einfache Auflistung von Datein in einem Ordner.\n\n

<!--EDIT|cbxk1xg|1103501936-->
Taulmarill
 2004-12-20 04:02
#3835 #3835
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
@lichtkind: mal ne blöde frage: hast du da nicht evtl. bei dem qoten ein | am ende vergessen?
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2004-12-19 23:14.