我想把25MB的文本文件,一次读入richtextbox 中,(大约要30秒),有没有更快的方法?
解决方案 »
- vs2008 自定义快捷键不能用
- 为什么委托可以跨线程使用
- 如何操作“SysTabControl32”控件?
- C# WinFrom 自定义安装包
- picturebox的最大值是32767
- 有c的源程序,想把它封成dll,然后在c#里调用获得压力信息,求教详细方法~
- 论坛里面有没有做智能客户端的兄弟啊?
- WEBFORM文件上传,目标文件夹为FAT32格式,怎么解决权限问题?在线等!!!
- dsoframer office工具栏失效问题
- 如何获得鼠标所在屏幕点的像素?
- 哪位大哥大姐能提供段C#输出ESC打印指令的代码,100分相赠
- 线程间操作无效,从不是创建控件"listbox1"的线程访问它 什么意思?
我记得以前看UltraEditor的一篇介绍文章时,有提到过此类情况,我的理解是 窗口概念,也就是说,在大的文件,能够在窗口上显示的始终就只有那么一点,因此最快的速度就是将这部分内容先读取出来、显示出来,其他部分的可以通过在后台用其他线程慢慢读取到内存。
也就是说,先读取部分字节(不要使用那种一次性将整个文件全部读入的函数),这部分先读取的字节刚好够整个屏幕显示的,然后就显示出来,接着再继续读取剩余的内容,直到全部读取到内存。
基本上,就是这样的感念了。不过,要做到这样的话,设计能力和程序编写能力都要有相应的提高才是,有难度的吧。
然后将字符串赋值到richtextbox的Rtf属性中试试..希望你客户的计算机的内存>1G...并且不是vista
新手的猜想:)
这个方法我试了下,也得20多秒,(2)先CreateFileMapping,然后MapViewOfFile。这是WINDOWS操作系统中处理大文件的标准方案。
这个方法,不知怎用,请老师详细解释下.查了下MSDN,找不到呀.
举个例子,你装vista,用1个小时,你在牛逼,也不能把它搞正1分钟就装完
(2)先CreateFileMapping,然后MapViewOfFile。这是WINDOWS操作系统中处理大文件的标准方案。
这个方法,不知怎用,请老师详细解释下.查了下MSDN,找不到呀.MSDN可以找到。只是在Platform SDK 部分。
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WIN32COM.v10.en/fileio/fs/createfilemapping.htm
或搜CreateFileMapping
然后richtextbox.rtf;试试
lz说的似乎并不是文本读取慢,25M的rtf文本转化应该是很费时的。
=========================================
要在非托管平台,要在托管写有点麻烦