![]() |
Datei Info verändern !
Guten Tag Kollegen :D
Ich arbeite gerade an einem Nebenprogramm indem es möglich sein soll Dateien umzubenennen (größere Mengen) Alles klappt soweit mit der Methode ReNameFile. Nun würde ich aber zusätzlich die Sektion unter "Eigenschaften" einer Datei den Punkt "Titel" auch verändern. (da stehen auch Punkte wie: Autor, Passwort, Kommentare usw.) Da finde ich jedoch keine Möglichkeit drauf zuzugreifen :( Wenn jemand Ideen hat, bitte melden :D mfg Zuckerberg |
AW: Datei Info verändern !
Um was für Dateien handelt es sich denn? So wie das aussieht, musst Du deren Header verändern, dazu brauchst Du aber eine Beschreibung des Dateiformats.
|
AW: Datei Info verändern !
Zitat:
|
AW: Datei Info verändern !
Dann musst Du die Id3Tags bearbeiten. Da gibt es irgendwo hier in der DP vom User Gausi eine Unit namens MP3Utils (oder so ähnlich), womit Du das machen kannst.
|
AW: Datei Info verändern !
Zitat:
|
AW: Datei Info verändern !
Ich habe das nie ausprobiert, aber lies einfach selbst (
![]() |
AW: Datei Info verändern !
Zitat:
Und nebenbei eine Frage, wieso wird bei dir das Profilbild angezeigt und bei mir nicht ?? |
AW: Datei Info verändern !
Guck dir die Unit doch erst mal an. Da dürften auch Beispiele und Demos dabei sein, wie man sie benutzt.
|
AW: Datei Info verändern !
Zitat:
|
AW: Datei Info verändern !
Zitat:
Die Unit MP3FileUtils ist ja mal mega kompliziert und irgendwie nicht ganz kompatibel mit Delphi 5 -.- Das Problem ist auch das die Unit MP3FileUtils noch andere Units braucht ... und einzelne Teile da raus zunehmen ist schier zu anstrengend -.- Gibt es keine andere Möglichkeit ?? |
AW: Datei Info verändern !
Doch, aber dazu musst Du Dich selbst mit den
![]() |
AW: Datei Info verändern !
Ist im grunde genommen nicht schwer:
Du nimmst die Datei, liest sie in einen Stream ein, navigierst zu der Stelle, wo die ID3 Info anfängt und überschreibst die Information an der gewünschten Stelle. Das sind Strings mit fester Breite. Also 30 Zeichen Z.B. Der Rest der ja nicht mit Zeichen aufgefüllt ist wird mit #0 aufgefüllt (nicht leerzeichen sondern #0). Zumisndest in C# haben wir das in der Schule mit einem 30 Zeiler gelöst. |
AW: Datei Info verändern !
Selber implementieren :stupid:
|
AW: Datei Info verändern !
Ja hab die Unit implementiert, jedoch nicht mit Delphi 5 damit klappts nicht habe meine Delphi 7 Version benutzt ;)
Und ja läuft ganz einfach: 1. Stream einlesen 2. Datei Infos verändern 3. Stream überschreiben das wars im Grunde ... Danke ;) |
AW: Datei Info verändern !
Nur zur Erklärung, warum Mp3FileUtils so "mega kompliziert" ist.
Der angespochene 30-Zeiler bearbeitet nur die einfachen ID3v1-tags am Ende der Datei. Der neuere ID3v2-tag am Anfang der Datei ist deutlich komplexer, und da gibt es dann wieder drei Unterversionen. Und dann kann man da auch Bilder und anderen Kram unterbringen, und dann wird das halt etwas länger. ;-) Andere Units werden da eigentlich nicht gebraucht. Optional können für ältere Delphi-Versionen die TNT UnicodeControls benutzt werden, um auch Dateien mit Unicodezeichen im Namen bearbeiten zu können. Das lässt sich in der config.inc aktivieren, voreingestellt ist das nicht. Und mit Delphi 5 sollte das eigentlich auch funktionieren. Afaik macht Delphi3 oder kleiner Probleme, da es dort wohl noch keine dynamischen Arrays gab. Was klappt denn da mit Delphi 5 nicht? :gruebel: |
AW: Datei Info verändern !
Zitat:
und da stehen überhaupt keine Zeichen -.- |
AW: Datei Info verändern !
Es scheint der falsche Zeilenumbruch verwendet zu werden
|
AW: Datei Info verändern !
Zitat:
Gruß K-H |
AW: Datei Info verändern !
Zitat:
|
AW: Datei Info verändern !
Zitat:
Delphi-Quellcode:
.
TID3v2FrameVersions = (FV_2 = 2, FV_3, FV_4);
Ist zu lange her, aber man muss beim Entfernen des "= 2" ein paar direkte Zuweisungen leicht anpassen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 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