![]() |
einer datei einen tag zuweisen?
hi,
gibt es eine möglichkeit einer datei einen tag zuzuweisen? also so wie man zb auch einem button1 einen tag zuweisen kann: button1.tag:=512; der sollte natürlich beim kopieren bzw verschieben nicht verloren gehen und einfach abzufragn sein... danke schon mal im voraus... |
Re: einer datei einen tag zuweisen?
Entweder den Tag als Dateiname nutzen oder in die erste Zeile der Datei den Tag hinterlegen.
|
Re: einer datei einen tag zuweisen?
den dateinamen wollte ich eig gleich lassen... und in die erste zeile kommt glaub ich auch nicht so gut an, weil die dateien mehrere gb groß sind...
|
Re: einer datei einen tag zuweisen?
Zu allererst st eine Datei mal ein Dateisystemobjekt und eine Schaltfläche ein VCL Objekt. Es handelt sich alo um zwei gänzlich verschiedene Dinge. Ein VCL Objekt kann man sleber mit beliebigen Eigensachaften ausstatten. Bei einem Dateisystemobjekt ist man von der Implementation des Dateisystem abhängig.
So, was verstehst du jetzt unter einem Tag und was für eine Funktion soll diese Eigenschaft erfüllen? Um eine Datei zu kennzeichnen kannst du entwerder die Informationen in die Datei schreiben, die Dateinamenerweiterung ändern oder unter NTFS Alternate Data Streams nutzen. Was hat die Größe damit zu tun? |
Re: einer datei einen tag zuweisen?
dauert es nicht länger die erste zeile einer 1gb datei auszulesen als die einer 1mb großen datei? :oops:
ich möchte jeder datei einfach eine nr zwischen 1 und 10000 zuweisen. die haben alle dieselbe dateinamenerweiterung. |
Re: einer datei einen tag zuweisen?
Wieso? Du brauchst doch mit einem FileStream nur das erste vier Byte zu lesen.
|
Re: einer datei einen tag zuweisen?
und die datei kann genau so geöffnet und verwendet werden wie vorher? auch wenn man 4 byte hinzufügt, egal ob es eine doc, xls, mp3, iso, jpg oder sonstige datei ist?
|
Re: einer datei einen tag zuweisen?
Nein natürlich nicht ^^
Aber unter ntfs kannst du die oben angesprochenen ADS verwenden, die sind dafür geignet Dateien mit zusatzinfos zu versehen. |
Re: einer datei einen tag zuweisen?
Würde sagen: JEIN
Probiere es aus. Habe eben mal zum Spaß die ersten 4 Bytes einer mp3-Datei verändert und zu meiner Überraschung wird sie trotzdem abgespielt. Aber bestimmt ist nicht jedes Programm so tolerant. Wozu soll denn dieses Tag nutzen? Erkläre doch mal näher, was du damit bezwecken willst. |
Re: einer datei einen tag zuweisen?
Zitat:
|
Re: einer datei einen tag zuweisen?
Hm, habe mal in alten Unterlagen nachgeschaut: In den ersten 32 Bit eines mp3-Files soll eigentlich der mp3-Header placiert sein. Der enthält ja nun durchaus wichtige Informationen auch für die Wiedergabe.
Wenn ich nun 4 Bytes überschrieben habe, sollten damit eigentlich ALLE diese Informationen vernichtet sein. Seltsam, aber ich möchte im Augenblick nicht weiter ergründen wieso es trotzdem funktioniert. Höre da lieber noch etwas Weihnachtsmusik :dancer: |
Re: einer datei einen tag zuweisen?
Geht es denn um "eigene" Dateien oder fremde Formate?
|
Re: einer datei einen tag zuweisen?
Hallo erstmal.... :-D
Zitat:
- du möchtest die Dateien über eine eindeutige Nummer ansprechen. ( Index ) Da fällt mir als Lösung eine StringList ein. Da hast du zu dem Dateinamen / Pfad einen eindeutigen Index. Da kannst du sowohl über den Dateinamen den Index herausfinden als auch über den Index den Dateinamen. bis bald... :hi: PS: nach dem 3.Mal lesen 8) - wenn die Datei immer die selbe Nummer tragen soll wird es mit der StringList schwierig, da nicht sicher gestellt ist, daß beim Einlesen der Dateiname immer an der gleichen Position landet. Es sei denn du sortierst dann nach deinen Vorgaben. |
Re: einer datei einen tag zuweisen?
Zitat:
Die 4 Bytes, von denen du sprichst, sind die 4 Byte der MPEG-Frame-Header. Jeder der zig-hundert oder tausend Frames hat diesen Header. Da mp3-Dateien an sich keinen Header haben, muss die Wiedergabe-Engine den ersten solchen MPEG-Frame in der Datei suchen. Das geschieht über den 11-Bit-Marker am Anfang des MPEG-Headers und Konsistenzprüfung der übrigen 21Bit in diesen 4 Bytes. Wenn der am Anfang nicht gefunden wird, suchen die meisten Player noch ein paar Kilobyte weiter. Wenn man also die ersten 4 Bytes einer mp3-Datei überschreibt, wird nur der erste Frame zerstört (iirc 1/26 Sekunde), der Rest läuft normal. Nur unter bestimmten Umständen wird die gesamte Datei für viele Player unbrauchbar, nämlich dann, wenn der ID3v2-Tag zu Beginn der Datei vorhanden ist und größer ist als die Suchtiefe des Players nach dem ersten Frame. Durch das überschreiben wird der ID3-Tag-Header unbrauchbar, wodurch der Tag nicht vom Dekoder übersprungen werden kann. Edit: Soviel zu OT. Die ersten 4 Bytes für einen Tag der Datei zu nutzen ist und bleibt aber eine schlechte Idee, auch wenn das bei mp3-Dateien manchmal ohne sicht/hörbare Auswirkungen bleibt. |
Re: einer datei einen tag zuweisen?
Hallo Gausi!
Vielen Dank für deine ausführliche Erläuterung :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 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