Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wurde Datei verändert? (https://www.delphipraxis.net/75736-wurde-datei-veraendert.html)

BrotherLui 24. Aug 2006 09:25


Wurde Datei verändert?
 
Hallo Leute,

in meinem Programm kann man Einstellungen in einer Textdatei speichern und auch wieder laden.
Wird nun diese Datei nach dem speichern außerhalb mit einem editor verändert bekomme ich Probleme im Programm.

Frage:
Wie kann ich ganz einfach (muss nicht verschlüsselt und auch nicht sicher sein) feststellen ob die Datei verändert wurde und dann nur eine Meldung ausgeben: Datei wurde verändert. Laden nicht möglich!

Er soll dann die Datei gar nicht erst laden.


Danke.
Gruß



P.S.: hab schon einiges über MD5 gelesen aber nicht verstanden wie ich das auf mein Problem anwenden kann.

Der_Unwissende 24. Aug 2006 09:29

Re: Wurde Datei verändert?
 
Hi,
also am einfachsten ist es, wenn du dir das Änderungsdatum der Datei anschaust. Du weißt ja wann die letzte Änderung stattgefunden haben darf, gab es danach noch eine...
Genauso sicher gehst du natürlich auch, wenn du einfach einen MD5 (oder anderen) Hash über die Datei errechnest. Hier ist die Wahrscheinlichkeit, dass du einen gleichen Hash bei einer veränderten Datei bekommst nahezu 0 (wirklich nahe an der 0!).

Gruß Der Unwissende

Andreas L. 24. Aug 2006 09:30

Re: Wurde Datei verändert?
 
Du musst eine md5-Checksum der Datei generieren lassen, später nochmal und dann die Checksums vergleichen. Leider habe ich selbst noch nichts mit md5 gemacht.

Vielleicht kannst du das brauchen: http://www.fichtner.net/delphi/md5.delphi.phtml

BrotherLui 24. Aug 2006 09:54

Re: Wurde Datei verändert?
 
Danke euch.

@ Unwissender: Das mit dem Änderungsdatum ist gar keine schlechte Idee. Muss mal schauen wie ich das auslesen kann.


Zitat:

Zitat von onlinehome
Du musst eine md5-Checksum der Datei generieren lassen

und wo speicher ich die am besten ab? dass ich sie auch nach einem Neustart wieder hab.

Gruß

EDatabaseError 24. Aug 2006 09:56

Re: Wurde Datei verändert?
 
Und wo speicherst du das Änderungsdatum wieder ;-)

3_of_8 24. Aug 2006 09:57

Re: Wurde Datei verändert?
 
Registry (Ich hör jetzt schon die Buh-rufe)
Eine Datei in deinem Programmordner (checksums.dat oder so ähnlich)
Ein Ordner in deinem Programmordner (checksums zum Beispiel)

Da gibts viele Möglichkeiten.

Edit: MD5 kann gar nicht gehen, ohne die Datei zu laden.

Mavarik 24. Aug 2006 10:03

Re: Wurde Datei verändert?
 
Warum speicherst Du die Daten nicht einfach in einem anderen Format?

Dann kann auch keiner mit einem Texteditor die Datei ändern?

Frank

PS.: Klar geht das auch... Aber i.d.R. reicht es!

BrotherLui 24. Aug 2006 10:06

Re: Wurde Datei verändert?
 
Zitat:

Warum speicherst Du die Daten nicht einfach in einem anderen Format?
Aber dann muss nur mal jemand aus Spass die Datei mit dem Editor öffnen und verändern und schon stürtzt mein Programm ab.

Ich glaub ich werd das mal versuchen mit der checksum.dat

Dank euch

3_of_8 24. Aug 2006 10:11

Re: Wurde Datei verändert?
 
Die lässt sich natürlich auch verändern.

Aber ich formuliere es mal so:
Wenn ein Benutzer will, dass ein Programm abstürzt, dann schafft er das auch.
Du solltest so weit gehen, dass ein Benutzer nicht fahrlässig oder grob fahrlässig ein Programm abstürzen lassen kann, aber bei reinem Vorsatz kannst du auch nichts dagegen tun. ;)

Mavarik 24. Aug 2006 10:16

Re: Wurde Datei verändert?
 
Ja klar...

Ich kann auch die Exe in einen Editor laden und verändern.!

:wall:

Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr.
Seite 1 von 3  1 23      

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