Hilfe bei den Skripting-Befehlen

Ich habe viele Jahre in Access programmiert, deshalb beziehe ich mich oft auf dieses Programm.
Ich muss dir zustimmen, das Austesten ist ist eines der wichtigsten und nervigsten Schritte.
Dieses von Microsoft hinterlegte VBA ist so angelegt, dass ich bisher mit den 'regulären Ausdrücken' nie in Kontakt kam. Daher meine Verwirrung bei den Skripting-Beispielen in der MP3Tag-Hilfe

Da der reguläre Ausdruck schon erklärt ist, hier ein Beispiel, wie man es in einem Rutsch hinbekommt, das aus der Klammer in TITLE zu entfernen und gleich in COMMENT zu packen:
Aktion vom Typ "Tag-Felder importieren"
Quelle: $trim($regexp(%TITLE%,'(.*) \((.+)\)',$1==$2))
Ziel: %title%==%comment%

1 Like

Ich habe dein Beispiel komplett übernommen, mal mit mal ohne abschließendem Apostroph.
Es passiert rein gar nichts, ausser dass das 'Geändert-Datum' geändert wird.

Ich glaube, da ging beim copy & pasten etwas verloren. Probiere es mal damit:
Aktion vom Typ "Tag-Felder importieren"
Quelle: $trim($regexp(%TITLE%,'(.*) \((.+)\)$' ,$1==$2))
Ziel: %title%==%comment%

$regexp('Am weißen Strand von Sourabaya ( NH 22 429 )','(.*) \((.*)\)',$1==$2)
führt zu
Am weißen Strand von Sourabaya== NH 22 429
Ich weiß nicht, was da nicht passen soll.

Achte darauf, dass Du den Formatstring EXAKT copy & pastest, ohne führende Leerschläge, endende Hochkomma oder so...
In dieser Variante als "Quellformat" und als "Formatstring"

image

@Fotoknipser: es ist in dem Dump von dir zu sehen, dass am Ende noch ein Hochkomma steht. das soll da nicht hin,

Ich hab es mit beiden Varianten versucht, leider ohne Erfolg.

ich sehe keinen Unterschied. Habe den String in Notepad++ eingefügt, um Sonderzeichen zu sehen sind. Es sind keine da.

Teil_2021-12-31-4

Um das Thema nicht ausufern zu lassen, versuch ich jetzt meine externe Variante.

Bitte prüfe doch erst Mal in Konverter>Tag-Tag, ob der reguläre Ausdruck überhaupt zu einem passenden Ergebnis führt. Und dann wendest du die Aktion vom Typ "Tag-Felder importieren" an.

Das klappte sofort korrekt, von der fehlenden Klammer eines Titels abgesehen

Hast du diesen Ausdruck getestet:
$regexp(%title%,'(.*) \((.*)\)',$1==$2)
es müsste dann dies gezeigt werden:
Am weißen Strand von Sourabaya== NH 22 429

Es könnte noch am einen Leerschlag zu viel zwischen $' ,$1 liegen. Es sollte
$',$1
sein

Also nochmal die komplette Aktion "Tag-Felder importieren":
Quellformat:
$trim($regexp(%TITLE%,'(.*) \((.+)\)$',$1==$2))

Formatstring:
%title%==%comment%

1 Like

das führt dazu:
Teil_2021-12-31-5

aber der titel soll NICHT mit kopiert werden

Dein Dump beantwortet die Frage nicht, ob der Konverter>Tag-Tag das erwartete Ergebnis zeigt.

Hurra, das wars
es klappt
Danke
(jetzt werde ich den String analysieren)

1 Like

Dieser Befehl macht im wesentlich folgendes:
a) Er sucht nach dem bereits erklärten Inhalt im letzten Klammernpaar
b) Diesen formatiert/schreibt er neu als "Inhalt, getrennt mit zwei = Zeichen, gefundener Klammerninhalt"
c) Der Formatstring sucht dann nach diesen zwei = Zeichen und teilt den Inhalt davor in %title% und den Inhalt danach in %comment% auf

Einen kleinen Schönheitsfehler gibt's noch:
Alle Kommentare haben ein führendes Leerzeichen. Das umgehe ich in dem ich mit einer Zusatzaktion das erste Zeichen im COMMENT lösche.

Naja, GIGO würde ich sagen: wenn du hinter der öffenenden Klammer IMMER Leerzeichen hast, dann kannst du die natürlich auch gleich im regulären Ausdruck vernichten.
Ansonsten würde ich mit einem Blick in die FAQs empfehlen, eine Aktion zum Vernichten der führenden und angehängten Leerzeichen ausführen. Das geht bestimmt schneller, als da händisch was zu löschen.
Hier die FAQs:

Oder du modifzierst den regulären Ausdruck zu
$trim($regexp(%title%,'(.*) \(\s*(.*)\s*\)$',$1==$2))

Aber erst testen mit Konverter>Tag-Tag!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.