Zitat von
3_of_8:
Ich will ja nichts sagen, aber ich tus trotzdem mal:
Eine ähnliche Lösung hätte ich dir auch bieten können, aber dann sag bitte nicht "Laden nicht möglich!"
Hey, ist doch hier kein Contest oder so. Ich meine es zweifelt doch keiner an deiner Kenntnis! Sicherlich hätten du und andere sogar eine schönere Lösung hinbekommen, aber ich habe jetzt einfach mal in die Beiträge von BrotherLui reininterpretiert, dass er da noch gar keine (sehr geringe) Kenntnis hat und von daher den Code gepostet. Also ganz entspannt nochmal lesen, was er sagte und dann siehst du, dass er sicherlich auch aus deinen Tipps eine Menge gelernt hat! (z.B. über die Möglichkeiten eine Datei zu verändern)
Gruß Der Unwissende
Zitat von
jfheins:
Es gibt nur 2 Fehler soweit ich das sehe:
1. (kleiner Fehler)
Delphi-Quellcode:
if FileExists(FileName) then
begin
iniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + INI_FILE_NAME);
FileName bringt ja quasi nix - es wird immer auf die inifile im Programmverzeichnis zurückgegriffen ...
INI_FILE_NAME soll natürlich eine Konstante sein, die den Namen der Ini-Datei enthält! [EDIT]Und FileName enthält den Pfad zu der Datei, über die der Hash gebildet wird![/EDIT]
Zitat von
jfheins:
2. (größerer Fehler)
Beim speichern wird über die gesamte Datei gehasht, und dann in der Datei gespeichert. Beim Laden wird wieder über die gesamte Datei - jetzt inkl. Hash - gehasht und mit dem alten verglichen. Glaubst du, dass die beiden jemals gleich sein werden?
Alles klar?
Der Hash einer Datei (nicht der Ini!) wird in einer Ini abgelegt. Das heißt du bildest den Hash über die Datei Blubb.txt und speicherst den Hash in deiner Ini. Hoffe das wurde von anderen richtig verstanden.