Prüfen, ob erstes Zeichen Zahl oder Buchstabe ist

Begonnen von tedgo, 21. März 2011, 09:40:53

Vorheriges Thema - Nächstes Thema

tedgo

Nachfolgende Beiträge abgetrennt von hier - tedgo

Zitat von: qwert73 in 20. März 2011, 21:42:16
Ich hatte gerade eine Idee, wie die Prüfung der ersten Ziffer ohne $or oder $select und damit wesentlich kürzer ausfallen könnte.

$if($greater($roman(%tracknumber%),0),$num(%tracknumber%,0),$meta(tracknumber))

Nachtrag 2 und Offtopic:

Während obiger String bei mir läuft, will ein ähnlicher in der Album List nicht so recht. Weiß jemand, wo der Fehler liegt?

$if($greater($roman($left(%artist%,1)),0),#,$caps($left(%artist%,1)))
(Künstler werden nach dem ersten Buchstaben ihres Namens aufgelistet oder unter "#", wenn ihr Name mit einer Zahl anfängt)

Wieso willst du Zahlen überhaupt in lateinische Schreibweise umwandeln, wenn du dann mit einem numerischen Wert (nämlich "0") vergleichen willst?
Warum nicht einfach so:
$ifgreater($left(%artist%,1),0,#,$caps($left(%artist%,1)))

EDIT:
"Perfekt" ist das aber auch nicht...
Was, wenn der artist-String z. B. mit 01 anfängt? ;)
Und was ist mit der "0" selbst?  :P
Da muss man noch ein wenig basteln...

EDIT2:
So vielleicht?
$if($stricmp($roman(0),$roman(%artist%)),$caps($left(%artist%,1)),#)

Keine Ahnung...
Hab nie mit $roman() hantiert und bislang auch keinen Bedarf, zwischen Zahlen und Buchstaben zu unterscheiden.
Vielleicht hat ja einer eine ganz simple Idee und wir sind total auf dem Holzweg... :)

qwert73

#1
Zitat von: tedgo in 21. März 2011, 09:40:53
Wieso willst du Zahlen überhaupt in lateinische Schreibweise umwandeln, wenn du dann mit einem numerischen Wert (nämlich "0") vergleichen willst?
Ganz einfach: weil ich mich verrannt habe! Auf der Suche nach einer Möglichkeit zwischen Zahlen und Buchstaben zu unterscheiden, ohne dabei ellenlange Ausdrücke zu benutzen, wollte ich mal schauen, ob die Umwandlung in römische Zahlen behilflich sein kann, zumal ja bei Buchstaben ein leeres Ergebnis ausgespuckt wird. Nach einigem Hick-Hack funktionierte endlich der Ausdruck mit $greater. Um dann auf das naheliegende zu kommen, war ich dann wohl zu sehr vernarrt darin, eine relativ unbekannte Funktion zu benutzen. Stell dir vor, es ginge nur mit $roman - der Ruhm wäre meiner gewesen. Noch Fragen? :D


qwert73

Wen es interessiert:

ob es sich um einen Buchstaben handelt, lässt sich mit $strchr herausfinden. Siehe hier!


tedgo

Na dann also:
$if($strchr(0123456789,$left(%artist%,1)),#,$caps($left(%artist%,1)))