String(Zahlstring) aus DB als einzelne Grafiken anzeigen

Act of Fate

Erfahrenes Mitglied
Hallo,

ich hole mittels einer SELECT-Abfrage einen Inhalt aus einer Datenbank!
Mit PRINT würde dann die entsprechnende Zahl angezeigt werden, funktioniert auch

Nun möchte ich aus diesem Zahlstring eine nacheinanderfolgende Grafik machen, d.h. jede Zahl mit dem entsprechenden GIF ersetzen, so dass im PRinzip alle Grafiken direkt nacheinanderkommen!

Beispiel: 12345
Jetzt würden nacheinander 1.gif, dann 2.gif, 3.gif angezeigt werden!

Nur wie mache ich das?

Vielen vielen Dank
 
Hallo!

Ich habe zwar schon ewig nicht mehr mit Perl gearbeitet, aber vielleicht könnte das Dir helfen? (ist nicht getestet)

$string = 12345;
$gif = ".gif";

for($i = 0; $i <= length($string); $i++)
{
$bilder[$i] = chop($string).$gif;
}
Dann hättest Du ein Array, wo Du die Bildernamen absteigend (als 5.gif, 4.gif, ...) gespeichert sind.
Dann müsstest Du sie nur noch in der gewünschten Reihenfolge aufrufen.

redlama
 
Darf ich fragen, was daran nicht geht (wie gesagt habe lange nicht mehr mit Perl gearbeitet und würde gern rausfinden, wo der Fehler war).

redlama
 
Die Arrays lassen sich eifnach nicht transportieren:
z.B:

$bilder[1] = $visits[1];

was in der FOR-Schleife wie folgt aussehen würde:

$bilder[$i] = $visits[$i]

Variable $i wird ja hochgezählt!
 
Act of Fate hat gesagt.:
Die Arrays lassen sich eifnach nicht transportieren:
z.B:

$bilder[1] = $visits[1];
Ich habe ehrlich gesagt keine Ahnung, wo Du das $visits[$i] her hast und was genau Du mit "Arrays [...] transportieren" meinst.

redlama
 
Ich würde es so machen:
Code:
#! /usr/bin/perl

use strict;
use warnings;

my @bilder;
my $string = 1265712743;

foreach(split(//,$string)){
  push(@bilder,$_.'.gif');
}

print "Folgende Bilder werden dargestellt:\n";
print $_,"\n" for(@bilder);

Den letzten Teil (also die prints) musst Du halt anpassen!

@redlama: Deine Methode mit chop wird nicht funktionieren, da Du damit den String kürzt und die for-Schleife zu früh abbricht. Dein Ausschnitt mal auf der Kommandozeile getestet:
Code:
C:\wampp1\perl\bin>perl
$string = 12345;
$gif = ".gif";

for($i = 0; $i <= length($string); $i++)
{
$bilder[$i] = chop($string).$gif;
}
print $_,"\n" for(@bilder);
^D
5.gif
4.gif
3.gif

Dein Code-Schnippsel ist auch nicht strict-sicher, da das Array @bilder nicht vorher deklariert wurde.

Ich empfehle immer
Code:
use strict;
use warnings;

zu verwenden, da dies viel Zeit bei der Fehlersuche erspart, weil gleich viele Fehler ausgeschlossen werden!
 

Neue Beiträge

Zurück