AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Teilstring löschen:was ist an meiner Delete-Funktion falsch?
Thema durchsuchen
Ansicht
Themen-Optionen

Teilstring löschen:was ist an meiner Delete-Funktion falsch?

Ein Thema von juergen · begonnen am 18. Aug 2008 · letzter Beitrag vom 18. Aug 2008
Antwort Antwort
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.175 Beiträge
 
Delphi 11 Alexandria
 
#1

Teilstring löschen:was ist an meiner Delete-Funktion falsch?

  Alt 18. Aug 2008, 16:02
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:
...
var s : string;
begin
s:= Edit1.Text;
if PosEx('- ', s,(Pos('- ', s))+1) > 0
...
Um den Teilstring <Album> zu löschen habe ich die Überlegung mit Pos die "Startposition" des ersten Delimiter zu ermitteln.
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.
Edit2.Text := Delete(s, Pos('- ', s), PosEx('- ',s,(Pos('- ',s))+1) - Pos('- ', s) ) Als Fehlermeldung kommt:
Zitat:
[DCC Fehler] Test.pas(39): E2010 Inkompatible Typen: 'string' und 'procedure, untyped pointer or untyped parameter'
Kann hier jemand von Euch erkennen wo mein Fehler liegt?

Danke schon mal vorab!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Teilstring löschen:was ist an meiner Delete-Funktion fal

  Alt 18. Aug 2008, 16:12
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 ).
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.175 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Teilstring löschen:was ist an meiner Delete-Funktion fal

  Alt 18. Aug 2008, 16:21
Hallo Stahli,

inzw. hatte ich die 2 Postionen schon in Variablen gespeichert, war mir selbst auch zu unübersichtlich.
Zitat von stahli:
Delete ist eine Prozedur und liefert das Ergebnis im ersten Parameter zurück (ändert also den Wert direkt in S).
manchmal sieht man den Wald vor lauter Bäumen nicht!

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!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

Re: Teilstring löschen:was ist an meiner Delete-Funktion fal

  Alt 18. Aug 2008, 18:53
Zitat von juergen:
Schade, die Fehlermeldung hatte ich in eine ganz andere Richtungen gedeutet.
Nö, die war IMHO eindeutig und vollkommen korrekt
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Teilstring löschen:was ist an meiner Delete-Funktion fal

  Alt 18. Aug 2008, 19:08
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
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.175 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Teilstring löschen:was ist an meiner Delete-Funktion fal

  Alt 18. Aug 2008, 21:49
Hallo Achim,

deinen Vorschlag hatte ich schon vor einigen Wochen umgesetzt.
(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 , bietet mir aber gute Lerneffekte für die copy, Delete, Pos, PosEx, LastDelimiter, StringReplace, Length Funktionen.

Grüße
Jürgen
Jürgen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz