Obwohl Du später nur "read" verwendest, wird die Datei trotzdem immer zum Lesen
und Schreiben geöffnet!
Setze mal vor dem Öffnen den Filemode auf fmOpenRead:
Delphi-Quellcode:
if FileExists(Source) then
try
FileMode := fmOpenRead; // aus SysUtils
assignFile(f, Source);
reset(f);
read(f, a); // Nur lesen!
finally
closeFile(f);
end;
Der Standard-Wert für FileMode ist nämlich fmOpenReadWrite (=2)
Aber Achtung:
Wenn Du FileMode änderst, verwenden alle nachfolgenden Reset()-Aufrufe den neuen Filemode. Außerdem ist FileMode nicht Thread-sicher.
Du kannst diese Probleme umgehen, wenn Du statt der "veralteten" Aufrufe AssignFile(), Reset(), Read() das Streaming-System von Delphi verwendest:
Delphi-Quellcode:
if FileExists(VerFile) then
begin
FS := TFileStream.Create(VerFile, fmOpenRead);
try
FS.ReadBuffer(aVersion, SizeOf(aVersion));
// mach was mit dem gelesenen Datensatz
finally
FS.Free;
end;
end
else
...
HTH
KalwaDOS