Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Datei Info verändern ! (https://www.delphipraxis.net/161259-datei-info-veraendern.html)

Zuckerberg 24. Jun 2011 18:14

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

DeddyH 24. Jun 2011 18:19

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.

Zuckerberg 24. Jun 2011 18:20

AW: Datei Info verändern !
 
Zitat:

Zitat von DeddyH (Beitrag 1108168)
Um was für Dateien handelt es sich denn?

Es sind Musik Dateien. Genauer gesagt Mp3 Dateien.

DeddyH 24. Jun 2011 18:21

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.

Zuckerberg 24. Jun 2011 18:24

AW: Datei Info verändern !
 
Zitat:

Zitat von DeddyH (Beitrag 1108170)
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.

Gibt es da eine spezielle Methode für mit der ich direkt darauf zugreifen kann ??

DeddyH 24. Jun 2011 18:26

AW: Datei Info verändern !
 
Ich habe das nie ausprobiert, aber lies einfach selbst (MP3FileUtils war das übrigens).

Zuckerberg 24. Jun 2011 18:28

AW: Datei Info verändern !
 
Zitat:

Zitat von DeddyH (Beitrag 1108172)
Ich habe das nie ausprobiert, aber lies einfach selbst (MP3FileUtils war das übrigens).

Ah Danke Danke. Ich werde es gleich mal ausprobieren ;)

Und nebenbei eine Frage, wieso wird bei dir das Profilbild angezeigt und bei mir nicht ??

Luckie 24. Jun 2011 18:29

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.

Zuckerberg 24. Jun 2011 18:36

AW: Datei Info verändern !
 
Zitat:

Zitat von Luckie (Beitrag 1108174)
Guck dir die Unit doch erst mal an. Da dürften auch Beispiele und Demos dabei sein, wie man sie benutzt.

Jo, da bin ich grad bei ! ;)

Zuckerberg 25. Jun 2011 12:50

AW: Datei Info verändern !
 
Zitat:

Jo, da bin ich grad bei ! ;)
aber gescheitert -.-

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 ??

DeddyH 25. Jun 2011 12:59

AW: Datei Info verändern !
 
Doch, aber dazu musst Du Dich selbst mit den ID3-Tags auseinandersetzen.

WM_CLOSE 25. Jun 2011 14:54

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.

mkinzler 25. Jun 2011 15:01

AW: Datei Info verändern !
 
Selber implementieren :stupid:

Zuckerberg 26. Jun 2011 12:20

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 ;)

Gausi 26. Jun 2011 14:53

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:

Zuckerberg 26. Jun 2011 20:56

AW: Datei Info verändern !
 
Zitat:

Was klappt denn da mit Delphi 5 nicht? :gruebel:
Naja, ich habe alles eingebunden und in der Frame unit steht dann "mehr als 1024 Zeichen in einer Reihe sind nicht erlaubt"

und da stehen überhaupt keine Zeichen -.-

mkinzler 26. Jun 2011 20:57

AW: Datei Info verändern !
 
Es scheint der falsche Zeilenumbruch verwendet zu werden

p80286 27. Jun 2011 11:52

AW: Datei Info verändern !
 
Zitat:

Zitat von Gausi (Beitrag 1108351)
Afaik macht Delphi3 oder kleiner Probleme, da es dort wohl noch keine dynamischen Arrays gab.

Wenn ich mich nicht irre gab es schon in TP (ab 4,5 ?) die dyn. Arrays, da sollten sie in D3 eigentlich auch schon verfügbar sein.

Gruß
K-H

Luckie 27. Jun 2011 11:57

AW: Datei Info verändern !
 
Zitat:

Zitat von p80286 (Beitrag 1108503)
Wenn ich mich nicht irre gab es schon in TP (ab 4,5 ?) die dyn. Arrays, da sollten sie in D3 eigentlich auch schon verfügbar sein.

Nein, dynamische Arrays wurde erst mit Delphi 4 eingeführt.

Satty67 27. Jun 2011 12:11

AW: Datei Info verändern !
 
Zitat:

Zitat von Gausi (Beitrag 1108351)
Und mit Delphi 5 sollte das eigentlich auch funktionieren.

Nein, Set mit festen Werten macht Ärger
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 20:48 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