Witaj ,
istota problemu:
piszę program,który powinien sprawdzać czy nikt nie ingerował we wnętrze jego EXEca-ma obliczać swoją SumęKontrolną.Jednak przy próbie wywołania RESET(plik,1); wywala mi błąd I/O Error 32... , co może być tego przyczyną(przypuszczam ze chodzi o wspóldzielenie otwartego pliku), jak to ominąć lub co robię źle...
dzięki za poświęcony czas , pozdrawiam
procedure TForm1.Button1Click(Sender: TObject);
var
FromF: file;
NumRead, NumWritten: LongINT;
Buf: array[1..2048] of Char;
counter,x,len:longint;
b :tab;
begin
begin
AssignFile(FromF,'Project1.exe');
Reset(FromF, 1); { Record size = 1 }
Canvas.TextOut(10, 10, 'Copying ' + IntToStr(FileSize(FromF))
+ ' bytes...');
counter:=0;
setlength(b,Filesize(FromF));
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
for x:= 0 to NumRead-1 do begin
b[x+counter]:=buf[x];
end;
counter:=counter+NumRead;
until (NumRead = 0) or (counter=filesize(FromF));
CloseFile(FromF);
end;
end;
[code][/code][code][/code][code][/code][code][/code]