我需要将巨大的Unicode文件读入我的程序并转换为ANSI进行解析,对于某些文件,将它们再次存储为Univode,而其他文件应该在ANSI代码页中。
正如我所理解的那样,简单的读/写不支持Unicode文本,对于使用twidestring.loadfromfile
的最大文件(有些可能大到300 Mb甚至更大)是不可能的,因为内存用法和加载时间。
我一直想知道加载块是否可以成为解决方案的路径,但据我所知,它不支持Unicode BOM?
任何建议?
答案 0 :(得分:0)
德国“德尔福论坛”中有一个非常快速text reader。它使用内存映射文件。
您可能可以修改它以读取Unicode文本文件。但是,您可能必须自己测试BOM。
答案 1 :(得分:0)
在Delphi中,您还可以使用内存映射文件。
内存映射文件的主要好处是增加了I / O. 性能,尤其是在大文件上使用时。 ... 内存映射文件的一个可能的好处是“延迟加载”,因此即使对于非常大的文件也使用少量RAM。
内存映射文件。 (2013年2月26日)。在维基百科,自由百科全书。检索2013年3月17日15:14,来自http://en.wikipedia.org/w/index.php?title=Memory-mapped_file&oldid=540609840