Hai bài Pascal này bài 1 để nhập dữ từ bàn phím và ghi vào file kiểu record, bài 2 để đọc dữ liệu từ file kiểu record tạo ra ở bài 1 và ghi vào file khác. Thế nhưng ở bài 2 khi đọc đến bản ghi cuối cùng thì lại bị lỗi không chạy tiếp được. Nguyên do lỗi gì và giải quyết làm sao? Mong mọi người giúp đỡ.
bài 1:
program i;
uses crt;
type st20 = string[20];
st10 = string[10];
sinhvien = record
hoten:st20;
diem: st10;
h:st10;
end;
var f: file of sinhvien;
sv: sinhvien;
ten: st20;
d:byte;
begin
assign(f,'a.txt');
rewrite(f);
for d:=1 to 3 do begin
readln(sv.hoten);
readln(sv.diem);
readln(sv.h);
write(f,sv)
end ;
close(f);
end.
bài 2:
program i;
uses crt;
type st20 = string[20];
st10 = string[10];
sinhvien = record
hoten:st20;
diem: st10;
h:st10;
end;
var f: file of sinhvien;
sv: array[1..2] of sinhvien;
ten: st20;
d:integer;
begin
assign(f,'a.txt');
reset(f);
d:=1;
while not eof(f) do begin
read(f,sv[d]) ;
inc(d);
end;
close(f);
assign(f,'aa.txt');
rewrite(f);
for d:=d downto 1 do begin
write(f,sv[d]);
end ;
close(f);
end.