안녕하세요.
소스해석에 어느정도 일가견이 있다고 생각하고 있었는데...
잘 안풀리네요... 누구 주석좀 부탁드리겠습니다.
참고로 아래 소스는 어느주소록 프로그램의 삭제프로시저입니다.
<!--CodeS-->
procedure Tform1.DeleteRecord;
var
CurPos, Record, i : Integer;
Buffer : array[0..MAX] of TMyRecord;
begin
if MessageDlg('정말 지우시렵니까?', mtConfirmation, [mbYes, mbNo], 0) = mrNo
then Exit;
if NewRecord then
begin
ReadRecord;
NewRecord := False;
EnableButtons(True);
Exit;
end;
CurPos := FilePos(MyFile);
RecordNo := FileSize(MyFile) - CurPos - 1 // → 이부분이 잘이해가... ^^;;
if (FilePos(MyFile) < (FileSize(MyFile) - 1)) then
begin
Seek(MyFile, FilePos(MyFile) + 1);
i := 0;
while not EOF(MyFile) do
begin
Read(MyFile, Buffer[i]);
Inc(i);
end;
Seek(MyFile, CurPos);
Truncate(MyFile);
for i := 0 to RecordNo - 1 do
Write(MyFile, Buffer[i]);
end
else
begin
Truncate(MyFile);
Dec(CurPos);
end;
Seek(MyFile, CurPos);
ReadRecord;
end;
너무 소스가 방대한가요?
해석하려고 노력중입니다만, 아시는분은 답변으로 간략한 주석 부탁드립니다.
꾸벅~