AGB  ·  Datenschutz  ·  Impressum  







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

Identische Files erkennen

Ein Thema von SebE · begonnen am 14. Jun 2008 · letzter Beitrag vom 15. Jun 2008
Antwort Antwort
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#1

Identische Files erkennen

  Alt 14. Jun 2008, 13:28
Hallo Freunde,

Delphi-Quellcode:
var
  f1, f2: file of ...;

begin
assignFile(f1, DATEINAME_1);
reset(f1);

...

assignFile(f1, DATEINAME_2); //zu dieser Zeit ist DATEINAME_1 unbekannt
reset(f2);

...

closeFile(f1);
closeFile(f2)
end.
Gibt es eine Möglichkeit, aus den Dateivariablen den Dateinamen zu Extrahieren?
Der genaue Name ist eigentlich unwichtig...ich muss nur überprüfen, ob die zweite Datei die selbe ist, wie die erste.
Wichtig: die beiden Dateinamen existieren nicht zu gleichen zeit! (ich kann also nicht einfach, die beiden auf Gleichheit prüfen).

Ich muss also (NUR) mit diesen Datei-Variablen arbeiten...wie verarbeitet die Pascal überhaupt?
was steht alles hinter f1 und f2? Der Name (oder eine eindeutige Datei-ID, die für die beiden Variablen, die selbe wäre)? Wenn ja, wie kommt man an diese Informationen?

Ich hoffe, dass ihr mir helfen könnt.
Bin schon auf Antworten (und vor allem Hintergrund-Informationen) gespannt
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Identische Files erkennen

  Alt 14. Jun 2008, 13:31
suche hier im forum mal nach crc32

das sollte deine wünsche zufrieden stellen

eidt:
hier mal ein gutes bsp solch einer anwendung von drd32! incl erstellen von sfv dateien:

TDFCRC32
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Identische Files erkennen

  Alt 14. Jun 2008, 13:32
Hallo,

nur als Hinweis: Dafür eignen sich Hashwerte ganz gut. Du erstellst einen Hash der ersten Datei (also einen String-Wert) und wenn es die zweite Datei gibt dort ebenfalls. Diese Strings kannst du dann problemlos vergleichen.
Hash-Funktionen findest du in der DP oder natürlich auch im DEC.

Grüße
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Identische Files erkennen

  Alt 14. Jun 2008, 13:44
Hashs zu verwenden halte ich an dieser Stelle für falsch. Richtig ist meiner Meinung nach NtQueryInformationFile, wobei es ein paar Fallen gibt - siehe Comments-Sektion.

Du kannst auch deine Datei-Variable nach TFileRec casten und dir dort Name anschauen - der Nachteil ist, dass das exakt der Name ist, der bei AssignFile angegeben wird, das kann sich also unterscheiden, falls du es einmal mit Pfad und einmal ohne angegeben hast.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Identische Files erkennen

  Alt 15. Jun 2008, 16:19
du willst also nicht die Dateiihnalte vergleichen?

in NTFS (vorallem in Vista gibt es irgendwo eine nette API dafür) kann man Dateien eine eindeutige ID zuweisen lassen ... diese ID müßt man nur noch auslesen (sollte über das Handle möglich sein) und vergleichen.

(aber IDs sind nur innerhalb einer Partition eindeutig ... müßte man nun also noch die Prattition/Laufwerk, wo die dateien drauf sind vergleichen)
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


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 06:28 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