微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

delphi – 将CRC值保存在文件中,而不更改实际的CRC校验和?

我将从我自己的类中定义的一些对象保存到File. (保存流数据).

这一切都很好,但我希望能够在File中存储该文件的CRC校验和.

然后,每当我的应用程序尝试打开文件时,它都可以读取内部存储的CRC值.

然后检查实际文件,如果文件的CRC与内部存储的CRC值匹配,我可以正常处理文件,否则显示错误消息,说文件无效.

我需要一些关于如何做到这一点的建议,我想我可以这样做:

>从我的应用程序中保存文件.
>计算保存文件的CRC.
>编辑存储CRC值的已保存文件.
>每当打开文件时,检查CRC是否与内部CRC值匹配.

问题是,只要在文件中更改了单个数据字节,就会导致CRC校验和完全不同 – 正如预期的那样.

解决方法

简单地说,您需要从校验和计算中排除用于存储校验和的字节.

将校验和写为文件中的最后一项.除校验和外,根据文件内容计算它.当您来读取文件时,根据校验和之前的内容计算校验和.或者您可以将校验和写为具有随机访问权限的文件的第一个字节.只要你知道它在哪里.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐