我正在用程序集8086构建一个学校项目,它是某种图书馆管理程序,您可以选择该图书馆,将客户添加到列表中,添加书籍等。我正在尝试使用txt文件长期保存数据,但我不知道如何使其最有效。还有另一种方法可以将我的数据保存在程序集中吗?像数据库还是XML?
答案 0 :(得分:0)
对于SO来说,这个问题可能“太宽泛”,但我仍然会“回答”它,因为在评论中它会变得过于拥挤,需要为此设置一些格式。
使其最有效
哪种方式最有效?
对于磁盘上的最小大小,您可以使用一些压缩,但这会影响性能(而且对其进行编码也不是一件容易的事,尤其是在内存量有限的16位8086实模式下,任何现代压缩方案都将是痛苦的或表现不佳,因为它们通常需要数百兆字节的内存来建立字典表等。
出于性能和代码简化的目的,您可能宁愿设计自己的自定义二进制文件格式,将内存状态转储到磁盘上并按原样重新加载,并具有一些良好的数据存储结构并使数据占据连续的内存块,转储/读取整个块最简单的代码,并且性能合理。
为了最简单的数据检查和进一步的数据重用,某种TXT / json / XML文件格式会更好,因此,即使人类也可以在代码之外读取/修改存储的数据,但这将需要更多的编码,一些代码将内存中的当前二进制数据格式化为文本表示形式,然后将其写入磁盘,还有一些解析器将此类文本数据读回,并将其转换为内存中的二进制结构/值。
我发现XML无意义地冗长,并且都无效(与二进制数据相比),并且仍然难以人工编辑,因为XML标签需要大量的编写工作,只要有意义,我更喜欢JSON,而不是XML,因为在纯文本编辑器中无需任何帮助就可以手动编写它,并且阅读起来也更简单。但是在某些情况下,XML更有意义,因为它稍有不同。如果像您所要求的那样进行数据转储,我想拥有自定义TXT文件(带有一些自定义格式规则,如何创建数据结构)或JSON就足够了,我看不到XML会在哪些方面带来帮助
也许从内存中整个数据结构的二进制转储+重装开始,因为这应该最容易编写代码,然后尝试手动编写一些TXT文件,看看是否可以找到一些好方法来构造数据,然后尝试编写此类数据的格式化写入器和解析器。
我猜您的目标平台是DOS(从“ 8086”限制),因此只有OS服务可以向文件中写入/读取一定数量的字节。 DOS不提供任何格式/处理功能,因此TXT / XML / database / ...周围的一切都取决于您和您的代码。您可以使用DOS服务读取/写入字节块,任何以上内容都必须由您进行编程。 (或者您可以尝试找到一些图书馆,但是由于该技术现在已经有20多年的历史了,已经过时了……祝您好运)