文件流切割问题,高手请进(200)

  • 主题发起人 主题发起人 nanshan
  • 开始时间 开始时间
N

nanshan

Unregistered / Unconfirmed
GUEST, unregistred user!
有多个文件合并在一起后,文件包大于了100M,如果将单文件通过文件流复制出来后执行,那样就会增加复制的时间。有没有什么办法用一个文件流读取,再用另一个文件流关联到第一个流的中间一段呢。如一个TFileStream中包含3个文件,我想用另一个TStream关联到TFileStream的中间一段流。不采用复制方法,那样费时,不采用内存方式,太占内存。不知道我说的是否清楚。
 
当然可以,读流的方式后,指针(Position)可以指向你想读的位置,然后保存下来
 
如果我用 FRStream.Position := PFileItem(ListView.Selected.Data).Position; FS.CopyFrom(FRStream, PFileItem(ListView.Selected.Data).Size);是可以,但这个方法还是复制,我想找一种不用复制的方法
 
真的很难吗?
 
直接用TFileStream指向不就行了,干吗还要用另一个stream内存本身就是独立的,想用另一个stream包含内容必然会产生复制
 
这个问题是可以实现的只是比较复杂,你要去看看,下面这篇文章http://cnxhacker.net/article/show/2821.html这就是一个原内存文件指针定位,进程转化的问题,仔细看看,自己学会的比什么都方便
 
如果文档读取流的话就会直接读取流的总大小,而不会只读多少
 
看来是没有人解决了
 
后退
顶部