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
Redeemer

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

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 09: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.342 Beiträge
 
Delphi 12 Athens
 
#2

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 09: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.
Ein Therapeut entspricht 1024 Gigapeut.
  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: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.342 Beiträge
 
Delphi 12 Athens
 
#4

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 10: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.
Ein Therapeut entspricht 1024 Gigapeut.
  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, 11:02
Ich fand im Netz folgendes:

dwReserved0
Wenn das dwFileAttributes-Element das attribut FILE_ATTRIBUTE_REPARSE_POINT enthält, gibt dieses Element das Reparsepunkttag an.
Andernfalls ist dieser Wert nicht definiert und sollte nicht verwendet werden.

Wenn ihr recht hättet, wäre ja jeder Dateisystemeintrag mit FILE_ATTRIBUTE_REPARSE_POINT 4 Byte länger als einer ohne. Und bei Änderung des Attributs würde der Eintag entweder kürzer oder länger. Kann das wirklich sein?

e-gon
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.930 Beiträge
 
Delphi 12 Athens
 
#6

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 11:52
Wenn ihr recht hättet, wäre ja jeder Dateisystemeintrag mit FILE_ATTRIBUTE_REPARSE_POINT 4 Byte länger als einer ohne. Und bei Änderung des Attributs würde der Eintag entweder kürzer oder länger.
Das klingt, als ob du vollkommen falsche Vorstellungen der Speicherung z.B. eines NTFS-Dateisystems hast.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
e-gon

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

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 11:59
Wenn ihr recht hättet, wäre ja jeder Dateisystemeintrag mit FILE_ATTRIBUTE_REPARSE_POINT 4 Byte länger als einer ohne. Und bei Änderung des Attributs würde der Eintag entweder kürzer oder länger.
Das klingt, als ob du vollkommen falsche Vorstellungen der Speicherung z.B. eines NTFS-Dateisystems hast.
Das will ich nicht ausschließen...

Solche Werte können auch genauso gut beim Auslesen dynamisch ermittelt werden oder eben gar nicht gesetzt werden. Die anderen Werte liegen auch nicht so als Datenstruktur herum, sondern werden als Attribut abgelegt.
Stimmt allerdings.

Speichern könntest du die Werte aber ohnehin nicht, da du die Datenstruktur nur zum Auslesen bekommst.
Ja, damit hat sich die Sache so oder so erledigt.

Werde mir die Datenstöme nochmals genauer anschauen.

Danke für die vielen hilfereichen Beiträge!

e-gon
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.930 Beiträge
 
Delphi 12 Athens
 
#8

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 10:48
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.
Wie kommst du darauf? Ich sehe dafür keinen Hinweis. Solche Werte können auch genauso gut beim Auslesen dynamisch ermittelt werden oder eben gar nicht gesetzt werden. Die anderen Werte liegen auch nicht so als Datenstruktur herum, sondern werden als Attribut abgelegt.

Speichern könntest du die Werte aber ohnehin nicht, da du die Datenstruktur nur zum Auslesen bekommst.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
903 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 10:59
Wenn irgendwo "Reserved" dran steht, dann sollte man diese Felder imho nicht für eigene Zwecke missbrauchen. Falls das überhaupt möglich ist.

Frage: was soll dein Programm denn machen, wenn der User eine Datei außerhalb deines Programms verschoben hat und der Datenbankeintrag daher ungültig geworden ist?

Soll dann die ganze Festplatte nach einer Datei durchsucht werden, die der in der DB entspricht? Und wenn der Anwender an der Ordnerstruktur was ändert, dann wird diese Suche für hunderte oder gar zig-tausende Dateien durchgeführt?

Ich denke, dass das dem Anwender klar sein sollte: Wenn man ein Dateiverwaltungstool nutzt, und die Dateien außerhalb des Tools verschiebt oder umbenennt, dann muss man im Anschluss die Dateien neu von dem Tool suchen lassen. Da einen Automatismus zu erwarten, halte ich für eine stark überzogene Anwender-Anforderung.

Wenn dein Tool zusätzliche Informationen zu den Dateien speichert (die ggf. auch vom Anwender bearbeitet werden können), dann gehören diese Infos imho in die Metadaten der Datei. Zumindest solange die Dateien dadurch nicht zu sehr aufgebläht werden. Für eine eindeutige ID sollte da aber auf jeden Fall Platz sein. Oder halt alternative Wege, die (wahrscheinlich) bei den üblichen Verzeichnis-Aktionen erhalten bleiben. Alternative Datenströme an den Dateien, oder je eine versteckte "Info-Datei" pro Verzeichnis. Eine 100%ige Garantie dafür, dass die Infos erhalten bleiben, gibt es aber natürlich nicht.

Bei mp3 sind die ID3-Tags z.B. oft voll mit "Private Frames" vom Windows Media Player, iTunes und anderen, die dann von der jeweiligen "Datenbank" dahinter benutzt werden. Amazon nutzt z.B. das Kommantar-Feld für eine eindeutige Song-ID, und in einem speziellen Private-Frame werden afaik u.a. verschlüsselt Informationen zum Käufer gespeichert. Filesharing von Amazon-Mp3s ist daher eine ganz blöde Idee.

Die Tag-Formate in anderen Audio-Dateitypen können ebenso dazu genutzt werden.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
e-gon

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

AW: dwReserved1 nutzen?

  Alt 28. Jun 2024, 11:05
Frage: was soll dein Programm denn machen, wenn der User eine Datei außerhalb deines Programms verschoben hat und der Datenbankeintrag daher ungültig geworden ist?

Soll dann die ganze Festplatte nach einer Datei durchsucht werden, die der in der DB entspricht? Und wenn der Anwender an der Ordnerstruktur was ändert, dann wird diese Suche für hunderte oder gar zig-tausende Dateien durchgeführt?
Im Hintergrund scanne ich tatsächlich in regelmäßigen Abständen den "Musik-Bereich" der Festplatte nach verschobenen Dateien.

e-gon
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:04 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