我正在使用Delphi并尝试重写存储书籍记录的.dat文件。其中一个变量是.BookAmountAvailable,当一本书被取出时我希望它降低到.BookAmountAvailable该记录的1,我已经将文件读入一个打字数组,然后找到了正确的书并降低了数量由1提供。
当我使用更新的数组重写文件时,它没有正确写入(它只能正确写回其中一条记录,其余记录留空。
读入数组的代码是:
assignfile (BookFile,'BookFile.dat');
reset (BookFile);
BookCounter := FileSize(BookFile);
SetLength(BookArray, BookCounter);
for Count1 := 1 to BookCounter do
begin
read(BookFile, SingleBook);
BookArray[Count1] := SingleBook;
end;
closefile (BookFile);
我用来重写文件的代码是:
BookArray[Count].BookAmountAvailable := BookArray[Count].BookAmountAvailable -1;
assignfile (BookFile, 'BookFile.dat');
rewrite (BookFile);
for Count1 := 1 to BookCounter do
begin
seek (BookFile, Count1);
write(BookFile, BookArray[Count1]);
end;
closefile (BookFile);
是什么导致它没有正确地重写数组?
答案 0 :(得分:1)
您的代码存在两个问题。