修改时建议先将整个块读入到内存中,然后进行修改,最后新建一个文件,将修改好的块和原文件中的其它数据复制到新文件中。
比如说:CONT块中的author成员,假设原内容是'abcd',现在修改为'abcd1234',这时要修改author_len成员,因为author的长度改变了,接着修改CONT块的size成员。由于CONT块的长度改变了,紧跟的DATA块、数据包、INDX块的位置也改变了,所以PROP块的data_offset成员、index_offset成员;INDX块的next_index_header成员;所有索引记录的offset成员都要进行修改。然后按照原文件中块的顺序写入到新文件中。