![]() |
Teilstring löschen:was ist an meiner Delete-Funktion falsch?
Hallo zusammen,
ich möchte die Dateinamen meiner MP3-Sammlung einheitlich setzen. Meine jetzigen Dateinamen setzen sich entweder aus <Interpret> - <Titel> oder <Interpret> - <Album> - <Titel> zusammen. Sofern vorhanden, soll der Teilstring <Album> nun gelöscht werden. Der nachfolgende Code wird erst mal als Test auf ein Edit angewendet... Als "Delimiter" ist das '- ' zu interpretieren. Um zu prüfen ob die Datei überhaupt eine Albuminformation hat (2.Delimiter), verwende ich
Delphi-Quellcode:
Um den Teilstring <Album> zu löschen habe ich die Überlegung mit Pos die "Startposition" des ersten Delimiter zu ermitteln.
...
var s : string; begin s:= Edit1.Text; if PosEx('- ', s,(Pos('- ', s))+1) > 0 ... Mit PosEx habe ich ja schon die Position des 2. Delimter. Somit lässt sich der Index(Start) der Delete-Funktion setzen und die Länge (Count) der zu löschenden Zeichen. Leider bekomme ich die Delete-Funktion nicht ans Laufen.
Delphi-Quellcode:
Als Fehlermeldung kommt:
Edit2.Text := Delete(s, Pos('- ', s), PosEx('- ',s,(Pos('- ',s))+1) - Pos('- ', s) )
Zitat:
Danke schon mal vorab! |
Re: Teilstring löschen:was ist an meiner Delete-Funktion fal
Delete ist eine Prozedur und liefert das Ergebnis im ersten Parameter zurück (ändert also den Wert direkt in S).
Der Übersichtlichkeit halber würde ich die Positionen vorher in Variablen speichern. Das spart u.U. auch mehrfache Berechnungen (auch wenn das praktisch nicht wirklich merkbar sein wird ;-) ). |
Re: Teilstring löschen:was ist an meiner Delete-Funktion fal
Hallo Stahli,
inzw. hatte ich die 2 Postionen schon in Variablen gespeichert, war mir selbst auch zu unübersichtlich. :zwinker: Zitat:
Habe nun die Zuweisung raus genommen und es funktioniert. Schade, die Fehlermeldung hatte ich in eine ganz andere Richtungen gedeutet. Danke für deinen Hinweis! |
Re: Teilstring löschen:was ist an meiner Delete-Funktion fal
Zitat:
|
Re: Teilstring löschen:was ist an meiner Delete-Funktion fal
Hallo Jürgen,
nur am Rande: Ich würde den neuen Dateinamen nicht aus dem alten Dateinamen herleiten, sondern den neuen Dateinamen über einen Format-String aus den Tags der MP3-Dateien bilden. Einmal implementiert kannst du dann deine Dateinamen jederzeit nach Belieben normieren. Freundliche Grüße |
Re: Teilstring löschen:was ist an meiner Delete-Funktion fal
Hallo Achim,
deinen Vorschlag hatte ich schon vor einigen Wochen umgesetzt. :mrgreen: (die Dateinamen als auch die ID3-Tags waren/sind zu großen Teilen eine Katastrophe, letztendlich war aber das Bilden des Dateinamens aus den ID3-Tags das kleinere Übel) Beim Bearbeiten der Dateien konnte mir dann der Total Commander gute Dienste leisten. Nun sind noch eine ganze Menge an Dateien übrig, welche "mit Hand" bearbeitet werden müssen, also mit Delphi. Ich erstelle mir hierzu eine "Maskierung", so dass ich von allen Dateien nur die lade, welche einem bestimmten Muster entsprechen. Dazu erstelle ich "on the fly" die Routine um den Dateinamen entsprechend anzupassen. Spaß macht das nicht :zwinker: , bietet mir aber gute Lerneffekte für die copy, Delete, Pos, PosEx, LastDelimiter, StringReplace, Length Funktionen. Grüße Jürgen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz