QUOTE (gnor @ Apr 8 2009, 02:39)

...
$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