Autor Beitrag
regsnerven
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 03.05.09 17:26 
Hallo Leute,

ich weiß nicht genau, ob ich hier richtig bin, aber zur Not kann der Beitrag ja verschoben werden.

Ich würde gerne einer Datei eine eigene Eigenschaft hinzufügen. Also z.B. einer Musik-Datei die Eigenschaft "Länge des Albums" obwohl es halt nur eine Datei ist.
Ist sowas möglich oder müsste man dafür einen eigenen Dateityp erfinden? Und wenn man das muss, wie geht sowas?

Ich hoffe, da hat jetzt jemand ne Ahnung^^

Gr33tZ
Rn
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 03.05.09 17:30 
Da gibt es viele Möglichkeiten. Wenn es wirklich universell (aber eine eigene Insellösung) sein soll, dann könntest du Alternate Data Streams benutzen, das funktioniert zwar nur unter NTFS, aber das sollte ja kein Problem mehr sein.
regsnerven
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 03.05.09 18:58 
Danke erst einmal.
Allerdings ist deine Idee, wie du das ja schon angemerkt hast, nur für NTFS und damit für Windows und ein paar andere Systeme geeignet.
Ich würde die Dateien aber gerne auch auf anderen Systemen benutzen können.

Wenn ich einen eigenen Dateityp nehmen würde und dem dort Meta-Tags wie den oben benannten zuweisen würde, würde Windows dafür dann Spalten bereit stellen können, wenn die Datei eine bestimmte Struktur hat oder ich dafür eine Erweiterungen installiere?

Gr33tZ
Rn
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 03.05.09 19:10 
Wenn du eine eigene Shell Extension dafür schreibst, dann kann man da auch eigene Spalten einbauen, klar.

Aber das Problem ist: Wenn du eine beliebige Datei nimmst und veränderst, dann können die Originalprogramme nichts mehr damit anfangen.
Bei MP3s sind in den Tags ja entsprechende Möglichkeiten enthalten, wenn es also nur darum geht, dann wäre das kein Problem.
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: So 03.05.09 19:16 
Bei den ID3 TAGs von MP3 Dateien gibt es doch z.B. eine Spalte "Comment". Könntest du nicht einfach diese verwenden?

_________________
PROGRAMMER: A device for converting coffee into software.
regsnerven
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 03.05.09 19:39 
Wenn ich eine eigene Dateityp erstellen würde, könnte ich dann nicht einfach sagen: da fängt die Datei an, also ich bastel den neuen Dateityp einfach um die eigentliche Datei drumherum mit entsprechendem Header? Also damit auch "alte" Programme das lesen können?

Das Comment-Feld ist keine Alternative. Sorry.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 03.05.09 19:47 
Sowas geht nicht sinnvoll, denn dazu müsstest du ja jeden Dateizugriff entsprechend abfangen und verändern... :shock:
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 03.05.09 19:51 
Soweit ich weiß, gibt es bei mp3-Dateien nicht direkt die Möglichkeit, die Album-Länge anzugeben. Das ist ja auch nur sehr bedingt sinnvoll. Du könntest den Private-Frame im ID3v2Tag dafür benutzen, aber ich kenne keine Möglichkeit für Delphi, den einigermaßen einfach zu schreiben*.
Bei mp3-Dateien könntest du einfach am Anfang deine Info einfügen, ohne die Datei unabspielbar zu machen. Der ID3v2Tag am Anfang der Datei ist dann aber verloren bzw. kann von anderen Programmen nicht ausgelesen werden. Außerdem könnte deine Info verloren gehen, wenn jemand anders den ID3v2Tag wieder ändert. Ist also keine gute Idee. Eigentlich sogar eine richtig schlechte :?.

Was hast du denn genau vor, dass du die Länge von anderen Dateien da mit reinschreiben willst?

______________________
*noch nicht. Im nächsten Update meiner MP3FileUtils wird das möglich sein. ;-)

_________________
We are, we were and will not be.
regsnerven
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 03.05.09 20:14 
Naja gut, dann lassen wir jetzt mal jegliche andere Verwendung von "älteren" Programmen außer acht. Wenn ich das tun will, dann muss ich halt ein Codec schreiben (xD das wird was).

Ich denke, ich werde einfach an eine bestehende Datei anknüpfen und darum meinen neuen Dateityp schreiben.

Die Frage ist nur, ob Delphi damit dann umgehen kann. Oder ist das egal. Ich hab noch nicht mit sowas gearbeitet. Kann ich bei Delphi einfach sagen: Greif auf die Datei "Musik.mY" zu und weise der Meta-Eigenschaft "Album-Länge" "50:43" zu?

Gr33tZ
Rn
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 03.05.09 20:26 
Nichts für ungut, aber anhand deiner Fragen wird das mit nem eigenen Codec (der dafür sowieso nicht notwendig ist) nichts. ;-)

Das einfachste wäre immer noch, den ID3Tag zu verwenden. In Version 2 kannst du dir da auch eigene Frames definieren (z.B. halt einen für die Albumlänge). Schau dir dazu mal id3.org an, oder meine ID3-Unit.

Trotzdem bleibt die Frage, wozu du das brauchst. Vielleicht lässt sich dein Vorhaben ja mit was anderem leichter realisieren.

_________________
We are, we were and will not be.
regsnerven
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 03.05.09 20:42 
Die MP3-Datei war nur ein Beispiel. Es wird eigentlich um Film-Dateien, wie AVI oder ähnliche. Da gibt's sowas wie ID3-Tags nicht.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 03.05.09 20:50 
Dann bliebe noch ein einfaches Container-Format. Pack das Video und eine kleine Textdatei mit den Infos z.B. in ein zip-Archiv, oder was selbstgebasteltes. Zum Abspielen extrahierst du den Film, zum Auslesen der Infos die Textdatei. :nixweiss:

_________________
We are, we were and will not be.
regsnerven
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 03.05.09 21:05 
ähm. Nicht so eine gute Idee. Denn im Nachhinein sollen die Dateien iTunesmäßig durchsucht werden. Es ist dabei wohl wenig vorteilhaft, wenn die Dateien dann immer entpackt werden müssen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 04.05.09 05:13 
iTunesmäßig? Dann wäre wohl eine Herangehensweise über eine zentrale Datenbank oder der Weg, den Microsoft bei den Miniaturbildchen im Windows Explorer gegangen ist, eine Möglichkeit. Nämlich eine versteckte Datenbank in jedem Ordner. Wobei du die auch per ADS an den Ordner oder die Dateien anhängen könntest, falls es sich um NTFS handelt, bei FAT eben als versteckte Datei im Ordner.
regsnerven
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 04.05.09 13:24 
Ja das Problem ist dann nur, ist die Datei weg, dann sind auch alle Metadaten weg. Und da man ja immer vom DAU ausgeht und ich das Teil ja zur Not nicht wiederherstellen könnte, wäre das wohl nicht so gut, oder?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 04.05.09 13:32 
Die einzige Möglichkeit das so zu speichern, dass der normale Nutzer nicht herankommt, sind ADS von NTFS. Die sieht man ja nicht. Und unter Windows sollte ja ohnehin auf Festplatten meistens NTFS benutzt werden.

Eine versteckte Datei, die vielleicht auch als Systemdatei gekennzeichnet ist, sieht der normale Benutzer, der diese nicht eingeblendet hat, auch nicht. Wenn er die einblendet und löscht, selbst schuld...
regsnerven
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 04.05.09 14:28 
Ja so kann ich aber leider nicht argumentieren, also mit "selber Schuld". Das geht ja nicht.
ADS kommt leider auch nicht in Frage, da ich nicht an NTFS gebunden sein will.

gibt es irgendwo ein Tutorial oder so, das einem so in etwa zeigt, wie man einen neuen Dateityp "erfindet" ?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 04.05.09 14:35 
So ein Tutorial wird es nicht geben. Was soll das auch? Du willst ein neues Format für Filme und Musik erfinden, was auch direkt mit iTunes und anderen Playern funktionieren soll? Ist dir eigentlich klar, was du da vorhast? Und dass dann die anderen Player ggf. auch umgeschrieben oder zumindest um Plugins erweitert werden müssen? Nebenbei: Mein Vorschlag mit dem Zip-Container (oder meinetwegen nur ungepackt, .tar wäre das dann wohl in der Linux-Welt) wäre genau so ein "neues Dateiformat". Mit dem Unterschied, dass man mit anderen Programmen dann auch noch (mit etwas tricksen) auf die Daten zugreifen kann.

Auch auf die Gefahr hin, mich zu wiederholen: Beschreibe doch mal, warum du meinst, das unbedingt machen zu müssen. Da gibt es bestimmt eine andere Möglichkeit.

_________________
We are, we were and will not be.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 04.05.09 14:40 
user profile iconregsnerven hat folgendes geschrieben Zum zitierten Posting springen:
Ja so kann ich aber leider nicht argumentieren, also mit "selber Schuld". Das geht ja nicht.
ADS kommt leider auch nicht in Frage, da ich nicht an NTFS gebunden sein will.
Dann gibt es ganz einfach keine Möglichkeit, keine Lösung. :nixweiss:

Du willst die Dateien normal von anderen Programmen benutzbar haben.
Du willst keine zusätzlichen Daten in zusätzlichen Dateien speichern.
Auch ADS möchtest du nicht nutzen.

Fassen wir zusammen: Du willst die Dateien ändern ohne deren Format zu verändern (sonst ginge es ja in anderen Programmen nicht mehr zu lesen), und du willst zusätzliche Daten speichern, aber weder in einer Datei noch via ADS...
--> Das geht nicht.
regsnerven
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 05.05.09 15:16 
Zitat:
Naja gut, dann lassen wir jetzt mal jegliche andere Verwendung von "älteren" Programmen außer acht. Wenn ich das tun will, dann muss ich halt ein Codec schreiben (xD das wird was).

Das mit der Kompatibilität zu anderen Programmen hatte ich schon über Board geworfen.

Ich brauche die Datei für ein eigens von mir entwickeltes Programm, das sich nicht auf zusätzliche Dateien oder NTFS-Formatierung verlassen soll. Das Programm wird dann schon darauf ausgerichtet die Dateien so zu lesen, wie es das soll. Mehr will ich gar nicht :S