Teil einer Variable in neue Variable speichern
Sven
- javascript
Hallo!
Mein Thema für diesen Beitrag ist - glaube ich - nicht ganz glücklich formuliert, aber es ist genau das, was ich machen will.
Ich habe eine Funktion, die wie folgt aussieht:
function go(Picture,Breit,Hoch,Text)
Übrigens handelt es sich um ein kleines Galerie-Skript, das nur zum besseren Verständnis. Jetzt möchte ich, daß er den Inhalt der Variablen "Picture" nimmt, zerlegt und einen Teil dieser Variable als neue Variable nimmt. Beispiel:
/test/bilder/galerie/events/img/sof2002_bild25.jpg
Da hätte ich es jetzt gern, daß ein Skript die "25" aus dem Bildnamen rausgreift, um eins erhöht und den Dateinamen wieder zusammensetzt, damit er dann so aussieht:
/test/bilder/galerie/events/img/sof2002_bild26.jpg
Das Skript müßte also gucken, wo in der Variable "bild" vorkommt und alles abgreifen, was zwischen diesem "bild" und ".jpg" steht. Das in eine neue Variable kopieren, um eins erhöhen und fertig ist die Laube.
Hintergrund ist, daß ich eine "Vorwärts"-"Rückwärts"-Navigation bauen will, ohne die Dateinamen vorher groß im Skript zu definieren, damit die Anwendung des Ganzen möglichst unkompliziert ist.
Hat jemand eine Ahnung, wie das funktionieren kann und ob es überhaupt funktionieren kann? Und wenn nicht: Habt Ihr eine andere Idee? Ich könnte noch eine Variable einbauen, in der die Nummer des Bildes mit übergeben wird, aber das wäre ja dann eine Dopplung der Bildnummer (und eine weitere mögliche Fehlerquelle bei der Anwendung des Skripts), die ich eigentlich vermeiden wollte. Wenn's nicht anders geht, werde ich aber wohl darauf zurückgreifen.
Danke überhaupt schonmal für das Lesen dieses Eintrags! :-)
Gruß,
Sven
Hallo Sven,
schau mal hier rein:
http://selfhtml.teamone.de/javascript/objekte/string.htm.
Mit search und substring wirst Du bestimmt weiter kommen.
Gruß, Jürgen
Hi,
Probiers mal so: Position herausfinden mit lastindexof und dann ein substring nehmen mit der ermittelten Position!
Das Skript müßte also gucken, wo in der Variable "bild" vorkommt
siehe http://selfhtml.teamone.de/javascript/objekte/string.htm#last_index_of
und alles abgreifen, was zwischen diesem "bild" und ".jpg" steht.
http://selfhtml.teamone.de/javascript/objekte/string.htm#substr
Das in eine neue Variable kopieren, um eins erhöhen und fertig ist die Laube.
neustring = altstringbisBILD + (Number(teilabbildstring) + 1)
Beim Zusammensetzten muss Du darauf achten, das der Teil hinter Bild auch eine Zahl ist, sonst gibt es ein 251 statt 26.
MfG
Andreas
Hallo!
/test/bilder/galerie/events/img/sof2002_bild25.jpg
Da hätte ich es jetzt gern, daß ein Skript die "25" aus dem Bildnamen rausgreift, um eins erhöht und den Dateinamen wieder zusammensetzt, damit er dann so aussieht:
/test/bilder/galerie/events/img/sof2002_bild26.jpg
Das Skript müßte also gucken, wo in der Variable "bild" vorkommt und alles abgreifen, was zwischen diesem "bild" und ".jpg" steht.
Ich hab gerade für eine eigene Anwendung was geschrieben:
+------------------+
function suchen (orig, my_begin, my_end )
{
erg = orig
p = erg.indexOf(my_begin)
if ( p >= 0 ) {
erg = erg.substring(p + my_begin.length, erg.length )
}
p = erg.indexOf(my_end)
if ( p >= 0 ) {
erg = erg.substring(0, p )
}
return erg
}
+------------------+
das wird so benutzt:
bildname = "/test/bilder/galerie/events/img/sof2002_bild26.jpg";
nmr = suchen ( bildname, "_bild", ".jpg");
Dann hat nmr den Wert "26". Zur Sicherheit sollte vielleicht noch ein parseInt 'aussenrum'.
Das in eine neue Variable kopieren, um eins erhöhen und fertig ist die Laube.
Erhöhen und wieder zusammenbauen kannst du selber?
Hintergrund ist, daß ich eine "Vorwärts"-"Rückwärts"-Navigation bauen will, ohne die Dateinamen vorher groß im Skript zu definieren, damit die Anwendung des Ganzen möglichst unkompliziert ist.
Für sowas nehm ich normalerweise eine Liste. Die ist leichter zu Pflegen als die Dateinahmen immer umzubenennen wenn ein neues Bild mitten rein soll.
By
Reinhard
Hallo zusammen!
Vielen Dank für Eure Hilfe! :-) Ich hab das Ganze jetzt wie folgt gelöst:
----------------------------------------------------
var Bild = (Picture.lastIndexOf("_bild"))+5;
var JPG = Picture.lastIndexOf(".jpg");
var Name = Picture.lastIndexOf("_bild");
if (Firstlast != "0")
if (Firstlast != "1") { var NummerNeu = Firstlast; }
else var NummerNeu = "1";
else var NummerNeu = Number(Picture.substring(Bild,JPG))+1;
var NameNeu = Picture.substring(0,Name);
----------------------------------------------------
Und es funktioniert! :-)
Viele Grüße,
Sven