密
密码空间
Unregistered / Unconfirmed
GUEST, unregistred user!
最近,在分析,文本文件读写的问题: 1、开始用 assignfile reset rewrite readln writeln 来读写操作文件,一切还算顺利但遇到的问题是:文件一旦超过4G,自然报错,这个原因,不用去说了,32位支持的问题,于是就想到内存映射 2、都说内存映射处理大文件比较好,好的原因就是快,所以处理大文件尤其适合,于是攺用内存映射进行读写,但发现一个问题,内存映射是一次性分配空间的,问题又有二: a:如果一次性先分配空间,在预先未知空间大小的前提下,空间当然要大些,于是,当你写完数据,很可能就多出很多,多余空间,这些空间如何去除呢?查了很多资料,多是含糊其辞,没有一个实际的有用的方案 b:如果是一次性分配4G以上的空间,内存映射是与内存挂勾的,你有这么大的内存条吗?于是,创建和映射文件时,用4G的空间就报错了,这个问题,也不知如何解决,查了众多资料一无所获 3、再说文件写好了,用内存映射文件读文件,大文件的读,上面说了,不可能一次性映射到内存,那么,就需分段映射,都说可以分段映射,看了很多书籍和网上查了一下,都只有说的,根本找不到一个合理的方案 最近研究这些问题,伤痛了脑筋,不知哪位高人愿出来指教一二,非常感谢,在此,再次诚意叩谢!