# strrstr?!

**URL:** https://community.mp3tag.de/t/strrstr/8152
**Category:** Vorschläge
**Created:** [March 26, 2009, 3:36pm UTC](https://community.mp3tag.de/t/strrstr/8152 "2009-03-26T15:36:22Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![humann](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/h/838e76/32.png) [@humann](https://community.mp3tag.de/u/humann)
#### Post date: [March 26, 2009, 3:36pm UTC](https://community.mp3tag.de/t/strrstr/8152/1 "2009-03-26T15:36:22Z")

</div>

hallo leute,

ich arbeite mit dem Programm viel über Scriptbefehle und mir ist aufgefallen, dass es eine Funktion gibt für das letzte Zeichen ($strrchr) und eine für die erste Zeichenkette ($strstr), aber keine für die letzte Zeichenkette (folglich $strrstr).

Bei der suche hab ich leider nichts gefunden und wenn ich einfach die letzte Zeichenkette (z.B. _-_)  
mit einem regulärem Ausdruck durch ein bestimmbares Zeichen ersetze (z.B. %) dann kann ich dies nicht in einer $if funktion tun.

Die Funktion "$strrstr"(letzte Zeichenkette) wäre daher die einfachste Möglichkeit.

Ich hoffe das ihr der gleichen Meinung sein und der Vorschlag nicht so schwer umzusetzen ist.

~Gruß~  
HumanN

---

<div class="post-metadata">

### Author: ![ci3nt](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/c/5daacb/32.png) [@ci3nt](https://community.mp3tag.de/u/ci3nt)
#### Post date: [March 26, 2009, 6:37pm UTC](https://community.mp3tag.de/t/strrstr/8152/2 "2009-03-26T18:37:57Z")

</div>

Hallo,

du könntest als "Notlösung" $reverse verwenden und nach der umgekehrten zeichenkette suchen.  
Komfortabler wäre es natürlich mit $strrstr

mfG  
gnor

---

<div class="post-metadata">

### Author: ![humann](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/h/838e76/32.png) [@humann](https://community.mp3tag.de/u/humann)
#### Post date: [March 26, 2009, 7:06pm UTC](https://community.mp3tag.de/t/strrstr/8152/3 "2009-03-26T19:06:15Z")

</div>

genau das meine ich es wäre 😃 komfortabeler,  
aber ich arbeite bereits an einer alternativen lösung mit $regexp

trotzdem danke 😉

---

<div class="post-metadata">

### Author: ![ci3nt](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/c/5daacb/32.png) [@ci3nt](https://community.mp3tag.de/u/ci3nt)
#### Post date: [April 7, 2009, 10:39pm UTC](https://community.mp3tag.de/t/strrstr/8152/4 "2009-04-07T22:39:56Z")

</div>

hab doch noch mal den kompletten String gemacht:

$strrchr(x,y) = $add($sub($len(x),$add($strstr($reverse(x),$reverse(y)),$len(y))),2)

(Eventuell könnte man auch mal einen Thread erstellen, wo man solche Alternativskriptbefehle sammelt. Meistens kann man sich die gewünschte Funktion ja über Umwege zusammenbasteln.)

mfG  
gnor

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [April 8, 2009, 5:00am UTC](https://community.mp3tag.de/t/strrstr/8152/5 "2009-04-08T05:00:40Z")

</div>

> [@gnor](#):
>
> ...  
> $strrchr(x,y) = $add($sub($len(x),$add($strstr($reverse(x),$reverse(y)),$len(y))),2)  
> ...

... oder auch so:  
$StrRStr(x,y) = $Sub($Sub($Add(2,$Len(x)),$Len(y)),$StrStr($Reverse(x),$Reverse(y)))

Aber wegen der Anomalien in der Funktion $StrStr wird die Formel nicht in allen Fällen ein korrektes Ergebnis liefern, z. B.  
$StrRStr('.','.') ergibt 1 ; ok  
$StrRStr('.','') ergibt 2; sollte 0 sein  
$StrRStr('.',) ergibt 3; ???

1. $StrStr('','') ==\> Ergebnis: 1 (Wo ist Hochkomma im Hochkomma? Ergebnis korrekt: 1)
2. $StrStr('''','''') ==\> Ergebnis: 1 (Ergebnis wie Nr. 1, aber wie sehen die untersuchten Zeichenketten tatsächlich aus?)
3. $StrStr(',',',') ==\> Ergebnis: 1 (Wo ist Komma im Komma? Ergebnis korrekt: 1)
4. $StrStr('.',',') ==\> Ergebnis: 1 (Wo ist Komma im Punkt? Ergebnis korrekt: 0)
5. $StrStr(',') ==\> Ergebnis: leer (2. Parameter fehlt, aber es gibt keine Syntaxfehlerwarnung) #Syntaxfehler#
6. $StrStr(''',''') ==\> Ergebnis: leer (wie Nr. 5, sollte Syntaxfehler erzeugen.) #Syntaxfehler#
7. $StrStr(,) ==\> Ergebnis: leer (Wo ist Leerstring im Leerstring? Ergebnis sollte sein: 0) #Ergebnisfehler#

Die Mp3tag Skriptfunktionen  
$StrChr(x,y), $StrRChr(x,y), $StrStr(x,y) sowie StrRStr(x,y)  
können durch eine einzige Funktion ersetzt werden:

StrIndex  
Sucht in einer Zeichenkette nach einer Teilzeichenkette.  
Searches a main-string for a sub-string.

Syntax:  
StrIndex (main-string, sub-string, start, direction)

Parameters:  
(s) main-string: the string to be searched for a sub-string.  
(s) sub-string: the string to look for within the main-string.  
(i) start: the position in the main string to begin search. The first character of a string is position 1.  
(i) direction: the search direction, 0 searches forward, 1 searches backwards.

Returns:  
(i) position of sub-string within main-string, or 0 if not found.

DD.20090408.0940.CEST

---

<div class="post-metadata">

### Author: ![humann](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/h/838e76/32.png) [@humann](https://community.mp3tag.de/u/humann)
#### Post date: [April 26, 2009, 5:13pm UTC](https://community.mp3tag.de/t/strrstr/8152/6 "2009-04-26T17:13:17Z")

</div>

danke leute ihr habt mir echt geholfen 🙂
