Hallo liebe Leute da ich ein Anfänger bin möchte ich euch mal fragen wie man das so mit den AKTIONEN macht , das es nur EINMAL ausgeführt wird auch wenn man es mehrere Male hintereinander angeklickt , egal welche varianten man vor hat HAUPTSACHE es wird nur EINMAL ausgeführt.
Eine Aktion wird immer nur manuell und somit einmalig ausgeführt.
Wenn Du mit "nur einmal" meinst, dass der Inhalt von Aktionen - z.B. eine Klammer hinzufügen - nicht bei jeder manuellen Ausführung erneut eine Klammer hinzufügt, dann musst Du die Aktion so erstellen, dass Du entweder zuerst prüfst, ob es diese Beispielklammer wirklich zusätzlich braucht.
Oder Du filterst Deine Stücke vorgängig so, dass Du die Aktion nur auf eine Teilmenge Deiner Stücke anwendest.
oh man für sowas bin ich irgentwie zu blöd wie kann man den sowas alles machen ?
Sobald Du uns hier ein konkretes Beispiel nennst, helfen wir Dir gerne weiter.
Zeige uns bitte Deine bisherige Aktion (Screenshot oder tippe die verwendeten Formeln ab).
Erkläre dann, was genau damit falsch läuft und wie die Aktion im Idealfall funktionieren sollte.
Dann können wir Dir auch ganz konkret helfen.
oh man ich weiss noch nicht mal wie ich meine aktionen sie zeigen soll
das was ich vieleicht könnte sie die MTA DATEI zu schicken
In Mp3tag kannst Du auf den Hauptmenupunkt Aktionen klicken.
Darin klickst Du nochmal auf Aktionen.
(oder Du drückst Alt+6)
Aus der Übersicht Deiner Aktionsgruppen doppelklickst Du die, die Du uns zeigen möchtest.
Aus den einzelnen Aktionen doppelklickst Du die, die Du uns zeigen möchtest.
Das sieht z.B. so aus:
Eine MTA ist mühsam zu lesen
[#0]
T=2
F=TITLE
1=(
2=[
3=0|0
und die einzelne Aktionsart ist nicht direkt erkennbar:
Im obigen Beispiel steht T=2 für "Ersetzen" und 3=0|0 für "Nur als Wort ersetzen und "Gross-/Kleinschreibung berücksichtigen"
Wie man einen Screenshot davon macht und hier im Forum einfügt, findest Du im verlinkten Text.
hmmmmmm ich möchte wenn ich mit den aktionen arbeite das es den nur einmal ausgefürt wird und nicht das zweite mal wenn ich die selbe aktion benutzt
ein beisiel : wenn ich (klammerauf oder )klammerzu benutze und mache es das zweite mal so werden diese klammern immer weiter auseinander gemacht und beim dritten man noch weiter auseinander und das möchte ich nicht ?
Es geht also um
richtig?
Diese Anweisung erfüllt Deine Anforderung eine öffnende Klammer mit einer öffnenden Klammer und einem Leerschlag zu ersetzen.
Gleichzeitig wird Deine Anforderung eine schliessende Klammer mit einem Leerschlag und einer schliessenden Klammer erfüllt.
Du hast nirgends erwähnt, dass Du das doppelt und dreifach und x-fach wiederholen willst.
Wie würdest Du den ersten Teil der folgenden Problemstellung in eigenen Worten lösen:
Unterscheide zwischen einer öffnenden Klammer in
blabla (text blala
und einer öffnenden Klammer in
blabla ( text blabla
also ich bin tatsächlich zu dumm für dieses programm und die aktionen
sonderschüler halt
Der Vorteil von Aktionsgruppen wäre:
Man könnte im Anschluss eine weitere Aktion laufen lassen, die alle doppelten Leerzeichen wieder durch ein einfaches ersetzt.
Ich bin mir sicher, dass es keine Suchen/Ersetzen-Routine gibt, die mit der Anweisung "ersetze 1 Zeichen durch 2 Zeichen" das nicht mehr ausführt, wenn eine vorgefundene Zeichenkette der Zielzeichenkette entspricht.
Das aufgetretene Problem liegt an der fehlenden Eindeutigkeit des Suchbegriffs.
Du bist ganz sicher nicht zu dumm für Mp3tag.
Aber Du musst Deine Aktionen in Mp3tag ganz genau überdenken.
Der erste Gedanke "ich ersetz mal alle Klammern mit Klammern und einem Leerschlag" funktioniert nur ein einziges Mal so wie Du es möchtest.
Danach kann man nicht mehr unterscheiden zwischen
blabla ( text blabla
blabla ( text blabla
blabla ( text blabla
blabla ( text blabla
weil all diese Ausgangslagen ja auf Deine Aktion "Suche nach einer Klammer und ersetze diese mit einer Klammer und einem Leerschlag" passen:
oh oh oh verstehe hier nur noch bahnhof
DANKE für diese freundliche bei bringung aber dazu bin ich leider
so sieht mein kramm aus
habe mich etwas schlau gelesen wie screenshot geht
Wie oben erklärt, funktionieren dieses Aktionen genau 1 einziges Mal richtig pro Musikstück.
Deshalb empfehle ich Dir folgendes Vorgehen:
1.) Lade alle Deine Stücke bei denen Du die Klammern mit Leerschlägen versehen möchtest in Mp3tag
2.) Drücke F3, damit öffnet sich am unteren Mp3tag-Rand ein Eingabfeld, das nennt sich Filter
3.) Tippe dort folgendes ein
TITLE HAS "(" AND NOT TITLE HAS "( "
4.) Das reduziert Deine Liste auf diejenigen Stücke, die im Titel eine öffnende Klammer haben, schliesst aber all diejenigen Stücke aus, die bereits schon mit einem Leerschlag ergänzt wurden
-> Im Idealfall werden Dir überhaupt keine Stücke mehr aufgelistet, z.B. wenn Deine Stücke keine öffnende Klammern enthalten oder wenn alle Klammern schon mit einem Leerschlag versehen sind.
Wenn die Liste leer wird, drückst Du erneut F3, damit schliesst und deaktivierst Du den Filter am unteren Mp3tag-Rand.
Wenn aber Stücke aufgelistet bleiben:
5.) Dann markierst Du all diese übriggebliebenen Stücke mit Strg+a
6.) Für diese übriggebliebenen, markierten Stücke - UND NUR FÜR DIESE - führst Du Deine bestehenden Aktionen für TITLE aus (nicht alle 6 Aktionen!)
das verstehe ich jetzt und das werde ich auch versuchen und damit will ich jetzt auch hoffen das meine sorgen damit behoben werden .....DANKE
Folge der Anleitung Schritt für Schritt und führe das dann mit einer Aktion nach der anderen aus.
Also zuerst TITLE mit öffnender Klammer filtern und Aktion TITLE mit öffnender Klammer ausführen.
Dann TITLE mit schliessender Klammer filtern und Aktion TITLE mit schliessender Klammer ausführen.
Dann ARTIST mit öffnender Klammer filtern und Aktion für ARTIST mit öffnender Klammer ausführen
und so weiter.
So hast Du bei jedem Schritt die volle Kontrolle was passiert.
Wäre nicht auch einfach eine Aktionsgruppe denkbar?
Als erste Aktion Ersetzen mit regulärem Ausdruck:
Field: ALBUM
Regulärer Ausdruck: [ ]{2,}
Ersetze Treffer mit: (hier 1x Leertaste drücken)
Die sucht jeden Fall in dem Tag (in dem Beispiel hier im Album), wo mehr als 2 Leertasten hintereinander kommen und ersetzt sie durch eine einzelne Leertaste. Ich kann mir auch keinen Fall denken, in dem 2 Leertasten hintereinander wünschenswert sind.
Diese Aktion ist die Vorbereitung für die wichtigere 2. Aktion.
Als zweite Aktion Ersetzen mit regulärem Ausdruck:
Field: ALBUM
Regulärer Ausdruck: (.* )\((?!\s)(.*)(?!\s)\)
Ersetze Treffer mit: $1( $2 )
Die stellt via negativem Lookahead sicher, dass hinter ( kein Leerzeichen kommt und dass vor ) ebenfalls kein Leerzeichen ist. Ist dies der Fall, macht sie jeweils ein Leerzeichen hinter ( und eins vor ).
Wenn bereits ein Leerzeichen hinter ( oder vor ) ist sollte sie nichts machen. Ergo kann man sie so oft ausführen wie man will.
Man muss nur sicher stellen, dass in dem entsprechenden Tag wirklich immer nur 1x runde Klammern vorkommen. Also 1x ( und 1x ). Ansonsten funktioniert die Funktion nicht wie erwartet.
Ich hab sie auch nur rudimentär getestet.
Für den 3. Fall funktioniert die 2. Aktion allein nicht, weil ja die Anforderung, dass auf ( ein Leerzeichen folgt und vor ) ebenfalls eins ist, auch bei 2 Leerzeichen hintereinander gegeben ist. Für solche Fälle ist die 1. Aktion da.
Es führen immer verschiedene Wege nach Rom.
Hast Du Deinen regulären Ausdruck in Mp3tag ausprobiert?
In meinen Test funktioniert das mit Deinem regulären Ausdruck innerhalb von Mp3tag nicht wie gewünscht.
(Hinweis:
Im verlinkten Artikel sind beide regexp-Varianten zum Erkennen als Oder-Variante aufgeführt - dies ist nur ein TEST! Das funktioniert so nicht mit der gleichzeitigen Ersetzung von öffnenden und schliessenden Klammern. Es ging mir nur um die korrekte Erkennung.)
Jetzt erst.
Hatte mich bei dem einen regulären Ausdruck vertan zwischen positivem und negativem lookahead.
Statt (.* )\((?!\s)(.*)\)(?=\s)
muss es (.* )\((?!\s)(.*)(?!\s)\)
heißen. Damit funktioniert es bei mir in mp3tag.
Also innerhalb von MP3Tag so:
Das funktioniert aber wie gesagt nur, wenn der Tag in der Form
blablabla (blablabla)
oder
blablabla ( blablabla )
oder
blablabla ( blablabla )
etc. vorliegt.
Bei:
blablabla ( blablabla)
oder
blablabla (blablabla )
würde die Aktion nichts machen.
Bei:
blablabla(blablabla)
auch nicht.
Und aus:
blablabla (blablabla) (blablabla)
würde blablabla (blablabla) ( blablabla )
werden.
Also am besten nur verwenden, sofern der Tag in der Form blablabla (blablabla)
vorliegt.
Hier noch eine Visualisierung des regulären Ausdrucks.
Vieleicht denke ich zu kurz:
aber wenn es darum geht, aus null bis beliebig vielen Leerzeichen bei Klammern immer genau 1 Leerzeichen zu machen, müsste auch gehen:
$regexp('Bla (bla) bla','(.*)\(\s*(.*?)\s*\)(.*)',$1'( $2 )$3')