我正在使用Delphi,并试图重写一个存储书籍记录的.dat文件。其中一个变量是.BookAmountAvailable,当一本书被取出时,我希望它降低到该记录的.BookAmountAvailable 1,我已经将该文件读入一个类型化的数组,然后找到正确的书,并降低可用的数量1.Delphi重写.dat文件
当我重写与更新的阵列的文件时,它不会将其正确写入(只写的记录一回正常,并记录的其余空白。
的代码读入数组是:
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);
这是什么导致它不能正确地重写数组?
时间的工具和使用数据库 –
这是一个大学项目和考试委员会坚持不使用数据库:/ –
难道他们还坚持使用传统的可怕帕斯卡尔I/O?太糟糕了。 –