AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

dwReserved1 nutzen?

Ein Thema von e-gon · begonnen am 28. Jun 2024 · letzter Beitrag vom 29. Jun 2024
Antwort Antwort
Seite 1 von 2  1 2      
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#1

dwReserved1 nutzen?

  Alt 28. Jun 2024, 09:40
Hallo,

einige Leute legten ihre Musikdateien zu einem größeren Archiv zusammen. Um der Datenmenge Herr zu werden, schrieb ich ein kleines Programm welches mit Hilfe einer Datenbank das Archiv verwaltet.

Zur Identifikation der Dateien nutzte ich zuerst den Dateinamen samt Dateipfad. Doch kommt es immer wieder vor, dass eine Musikdatei verschoben oder umbenannt wird (z. B. bei Korrekturen von Titel oder Interpret) und anschließend von meinem Programm nicht mehr auffindbar war. So ging ich dazu über bei jeder Datei dem Dateinamen eine eindeutige ID anzuhängen. Doch auch diese kann beim Umbenennen abhanden kommen.

Nach einigen Recherche stieß ich unter WIN32_FIND_DATA auf die Variablen dwReserved0 und dwReserved1. Meine Idee wäre nun dwReserved1 zu nutzen um dort die ID zu hinterlegen. Allerdings gibt es bezüglich dieser Variablen unterschiedliche Angaben im Netz. Mal sollen sie vom Typ DWORD und mal vom Typ Integer sein. Mal soll dwReserved0 bereits benutzt werden und mal sind dwReserved0 und dwReserved1 frei.

Deshalb meine Frage an euch: Haltet ihr die Nutzung von dwReserved1 für eine gute Idee? Und wie kann man diese Variable beschreiben?

PS: Natürlich gibt es unzählige andere Musikverwaltungsprogramme. Aber die Leute nutzen meine Software gerne und ich bin auch etwas stolz darauf! Also bitte keine Vorschläge für andere Verwaltungsprogramme!

e-gon
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#2

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 09:48
NEIN, weil im Dateisystem gibt es DORT einfach garnichts
und selbst wenn, dann wäre es sowieso beim Verschieben weg.

* entweder die Datei bearbeiten und ein eigenes ID3-Tag mit deiner ID reinschreiben
* oder es wie jeder andere machen ... einen HASH der Datei berechnen und das speichern. (CRC32, MD5, SHA1, SHA2, SHA256 oder sonstwas)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 10:03
Hallo himitsu,

danke für deine schnelle Antwort! Aber bist Du sicher, dass der Inhalt beim Verschieben abhanden kommt? Andere in WIN32_FIND_DATA gespeicherte Daten (wie CreationTime, LastAccessTime, LastWriteTime, dwFileAttributes) gehen dabei ja auch nicht verloren.

Einen Hash zu berechnen dauert mir etwas zu lange, aber stimmt, an ID3-Tag habe ich gar nicht gedacht. Allerdings geht das ja nur bei mp3 und nicht bei anderen Musikformaten und bei Videos, oder?

e-gon
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 10:20
Du kannst Dateidatenströme verwenden:
https://learn.microsoft.com/de-de/wi...o/file-streams
Diese bleiben auch beim Umbenennen, Verschieben und Kopieren erhalten, sofern NTFS verwendet wird.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 10:36
Hallo jaenicke,

danke, ein sehr interessanter Vorschlag. Muss ich mich mal näher damit befassen...

Vielen Dank!

e-fon
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#6

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 10:37
Bei .WAV nicht, aber viele Videoformate und mehrere Audioformate kennen auch sowas, wie Attribute/Infos, die man drinnen ablegen kann.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.049 Beiträge
 
Delphi 2009 Professional
 
#7

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 10:40
Du hast glaube ich keine Ahnung, was du schreibst.
Du willst Daten suchen, sprich lesen. Wieso willst du in einer Datenstruktur Daten schreiben, die eine Anforderung zum Lesen beschreibt? Beides für sich genommen (Lesen und Anforderung) ist bereits maximal falsch: Du kannst keine Daten lesen, die nie geschrieben wurden, und du kannst in einer im Arbeitsspeicher abgelegten Anforderung nichts dauerhaft speichern.
Das ist exakt so, als würdest du einen leeren Notizblock nehmen, "Zeig mir die Bild-Zeitung von heute!" sagen und dich dann wundern, dass auf dem Notizblock immer noch nichts steht.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#8

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 10:44
Für die Synology gibt es so eine Bilder/Videoplatform ... die Eine kann auch "Tags" in die Fotos/Videos schreiben (z.B. manuelle Tags, aber auch aus der BilderkennungsKI), damit sie beim Suchen genutzt werden können, auch wenn Dateien umbenannt/kopiert/verschoben werden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#9

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 11:26
Danke himitsu,

ob die Daten auf einer Synology-DS liegen muss ich erst noch herausfinden. Bezüglich Tags in Video- und Audioformaten fand ich tatsächlich einige Beispiele. Das Problem dabei ist, dass das Schreiben/Auslesen nicht überall gleich funktioniert und ich somit für jeden Dateityp etwas programmieren müsste.

Du hast glaube ich keine Ahnung, was du schreibst.
Du willst Daten suchen, sprich lesen. Wieso willst du in einer Datenstruktur Daten schreiben, die eine Anforderung zum Lesen beschreibt? Beides für sich genommen (Lesen und Anforderung) ist bereits maximal falsch: Du kannst keine Daten lesen, die nie geschrieben wurden, und du kannst in einer im Arbeitsspeicher abgelegten Anforderung nichts dauerhaft speichern.
Das ist exakt so, als würdest du einen leeren Notizblock nehmen, "Zeig mir die Bild-Zeitung von heute!" sagen und dich dann wundern, dass auf dem Notizblock immer noch nichts steht.
Ich verstehe die Kritik nicht so richtig. Die Variablen dwReserved0 und dwReserved1 sind in der Datenstruktur von WIN32_FIND_DATA hinterlegt. Es wird also dafür Speicherplatz reserviert und auch im Dateisystem zusammen mit CreationTime, LastAccessTime, LastWriteTime, dwFileAttributes auf der Festplatte abgelegt. Ansonsten wären die vorbereiteten, zukünftig vielleicht benutzten Variablen ja unsinnig.

Ob dwReserved0 und dwReserved1 jedoch beim Umbenennen und/oder verschieben mitgeführt werden, steht natürlich auf einem anderen Blatt...

e-gon
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#10

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 11:48
Es ist die Structur im RAM, für diese WinAPI.
Es hat aber nichts mit der Struktur im Dateisystem (FAT16,FAT32,NTFS,ReFS,usw.) zu tun.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:35 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