Pascal-不写文件

| 你好,帕斯卡大师! 我有一种自定义记录的文件类型:
DBCell = record
    Name: string[10];
    Surname: string[15];
    Balance:integer;
    OpenDate: record
        year: integer;
        month: 1..12;
        day:1..31
    end;
    AccountN: string[10];
end;
DBFile = file of DBCell;
以及打开文件并向文件中添加新元素的函数:
procedure Fopenf(var F:DBFile; var FName:string; var FOpened:boolean);
begin
    Assign(F,FName);

    rewrite(F);

    FOpened:=true;
end;

procedure InsN(var F:DBFile;var cell:DBCell;var FOpened:boolean);
begin
        Write(F,cell);
        Close(F);
        Rewrite(F);
        Writeln(\'Added\');
        FOpened:=false;
end;
问题是,实际上什么都没有写入文件。我究竟做错了什么?     
已邀请:
问题是InsN中的“重写”调用。 \'Rewrite \'创建一个新文件,因此通过在程序末尾调用它,您正在创建一个新的空文件!     
自完成任何Pascal以来已经很长时间了,但是IIRC
Rewrite
截断了文件。您应该使用
Append
。 在文件中插入记录后,不需要need4。
procedure InsN(var F:DBFile;var cell:DBCell;var FOpened:boolean);
begin
    Write(F,cell);
    Close(F);
    Writeln(\'Added\');
    FOpened:=false;
end;
如果您不想在每次打开文件时都截断它:
procedure Fopenf(var F:DBFile; var FName:string; var FOpened:boolean);
begin
    Assign(F,FName);

    append(F);

    FOpened:=true;
end;
    

要回复问题请先登录注册