Hi, bin neu mit dem Programm und muss sagen - NICHT schlecht!
Da ja die Nützlichkeit jeder Software durch die Kenntnisse des Benutzers beschränkt wird
hier mal meine erste Frage.
Ich möchte im Feld ARTIST folgendes durch " Ft." ersetzen: Featuring
Feat
feat.
ft
usw
Habs mal so versucht - Geht aber NICHT
Wie ist denn bitte hierfür die korrekte Syntax?
Hoffe auf kundige Hilfe
THX
Die Aktion "Ersetzen" verhält sich so, wie in vielen anderen Programmen auch:
Es wird 1 Suchbegriff gesucht und durch den bei "Ersetzen" genannten ersetzt.
Wenn also das Original wirklich so heißt "Feat,.Featuring", dann wird dafür "Ft." eingesetzt.
Bei "Original" findet keine Listenbildung statt.
Für solch grundlegende Fragen bietet sich auch ein Blick in die Dokumentation an, z.B.:
In der Dokumentation findet sich auch die Beschreibung der Scripting-Funktionen,
hier vielleicht besonders die Funktion
$replace(x,y,z) returns the string x with all occurrences of string y replaced by string z. Supports multiple parameter pairs y and z.
NEIN hier habe ich versucht.
Featuring OR Feat OR feat. OR ft
Mit Ft. zu ersetzen.
ABER so wie du schreibst, ist das so oder eben mit der richtigen syntax nicht vorgesehen??!
OHA! Das wird kompliziert (wenn man das noch nicht richtig versteht.)
Bitte vielleicht das Beispiel für die Praxis.
Wie muss das denn bitte lauten, wenn ich nach: Featuring OR Feat OR feat. OR ft suchen möchte und den Treffer mit Ft. ersetzen möchte.
In welchem Programm hast du denn jemals so eine Syntax zum Suchen und Ersetzen anwenden können?
Das Beispiel wäre:
aktion vom Typ "Tag-Feld formatieren" für ARTIST
Format string: $replace(%artist%,Featuring,Ft.,Feat,Ft.,ft,Ft.)
Aber Achtung: mindestens die letzte Kombination ist gefährlich, weil die auch in "After the Fire", "Abstürzende Brieftauben", "Bugge Wesseltoft", "Daft Punk" etc. das "ft" durch "Ft." ersetzen würde.
OR, AND, NOT könntest du auch in Filtern in MP3tag anwenden - und so etwas wäre das ja auch implizit bei SQL: eine Abfrage, die die Gesamtdatenmenge reduziert.
Dort wird aber wohl nicht gesucht und ersetzt wie in klassischen Textverarbeitern - und da kenne ich kein Programm, das SQL oder so verwendet für ein einfaches Ersetzen von Text-Konstanten.
Deshalb die eigentlich rhetorische Frage, welcher Textverarbeiter solche Möglichkeiten bieten würde.
Ist jetzt egal. wir haben die unterschiedlichen Möglichkeiten in MP3tag geklärt.
Und diese Falle lässt sich dann auch mit Leerzeichen davor und dahinter nicht immer umschiffen, denn hinter Feat in könnte durchaus noch ein Leerzeichen in der Quelle sein.
Beispiel: Little Feat feat. Emmylou Harris, Sam Bush & Béla Fleck
Danke !
Nun zurück zum Anfang:
Da ja die Nützlichkeit jeder Software durch die Kenntnisse des Benutzers beschränkt wird
hier nochmal meine erste Frage.als Neuling?
Wie gehts nun bitte ohne Falle?
Um anhand dieses Beispiels die Thematik besser zu verstehen
Die Falle kommt doch von dir, weil du die Begriffe nicht als Wörter abgegrenzt hast. "Featuring" ist so lang, dass es vermutlich nur in dieser Buchstabenkombination und dann alleinstehend vorkommt.
Alle Abkürzungen aber brauchen noch zusätzliche Begrenzungszeichen davor oder dahinter oder an beiden Ecken, um nicht auch ersetzt zu werden, wenn sie als Wortbestandteil vokommen. Beispiele für Wortbestandteile habe ich genannt.
Dieses Problem tritt auf, wenn du die Scripting-Funktion verwendest.
Wenn du die Aktion "Ersetzen" nimmst und jeweils immer nur 1 Begriff als Original und 1 Begriff für "Ersetzen mit" festlegst und zusätzlich "Nur Wort" auswählst, gibt es dieses Problem nicht.
Dieses Problem ist übrigens keines von MP3tag, sondern der verwendeten Daten. Das würde dir auch in jedem anderen Programm bei Suchen/Ersetzen so gehen, wenn du die Rahmenbedingungen nicht beachtest.
Die Wege sind doch beschrieben worden.
Aber jeder Weg hat eben seine Pferdefüße:
Bei der Aktion "Ersetzen" ist die Benutzerführung eng und die Fehlerquote vermutlich gering, es ist aber mehr Fleiß erforderlich.
Die Scripting-Funktion $replace() erfordert nicht mehr ganz so viel Fleiß, aber eben schon mehr Knowhow und Voraussicht, wo die verwendeten Daten womöglich unerwünschte Nebeneffekte haben.
Die Scripting-Funktion $regexp() erfordert am wenigsten Fleiß bei der Eingabe aber noch mehr Knowhow für die Konstruktion des Codes.
Also: es ist für jeden etwas dabei, das er je nach Abschnitt auf der Lernkurve anwenden kann.
Zum konkreten Fall: im Moment wird lediglich geprüft, ob Leerzeichen vor dem zu ersetzenden Wort stehen. Ich vermute aber, es könnten auch noch Klammern in unterschiedlichster Ausprägung verwendet worden sein. oder vielleicht Bindestriche.
Wie die dann zu behandeln sind, ist dann Ergebnis der Einzelfallprüfung.