5 个解决方案
#1
是你不知道用二进制文件
用二进制文件比其他方法快哪里去了
把文本文件内容读取TextBox:
Dim TempFile As Long
Dim LoadBytes() As Byte
TempFile=FreeFile
Open 文件名 For Binary As #TempFile
Redim LoadBytes(1 To Lof(TempFile)) As Byte
Get #TempFile,,LoadBytes
Close TempFile
Text1.Text=StrConv(LoadBytes,vbUniCode)
用二进制文件比其他方法快哪里去了
把文本文件内容读取TextBox:
Dim TempFile As Long
Dim LoadBytes() As Byte
TempFile=FreeFile
Open 文件名 For Binary As #TempFile
Redim LoadBytes(1 To Lof(TempFile)) As Byte
Get #TempFile,,LoadBytes
Close TempFile
Text1.Text=StrConv(LoadBytes,vbUniCode)
#2
我觉得也可能是因为缓冲区的问题,不过因为一行的长度不固定,我不好设定缓冲区,你说的方法文件小可以,但要把几十兆甚至上百兆的东西都读入内存,这样开销会很大,而且我的操作主要是基于行处理的,都读入的话处理起来也不太方便。另外textbox的限制是32K,而如果用richtext是不是有点罗嗦了?
#3
一次读取一定大小(比如1K)
再查找换行符,合并字符串
再查找换行符,合并字符串
#4
zyl910(910:分儿,我来了!):
能不能说详细点,我也想知道。
能不能说详细点,我也想知道。
#5
谢谢,试过了读一段内容放入缓冲区,再用split拆出行来,可我感觉我缓冲区设为1024和2048速度没区别啊?是不是缓冲区再大也不见得能再提高多大的效率了?速度倒是和line input相近了,可还是有些慢,不过不大。
#1
是你不知道用二进制文件
用二进制文件比其他方法快哪里去了
把文本文件内容读取TextBox:
Dim TempFile As Long
Dim LoadBytes() As Byte
TempFile=FreeFile
Open 文件名 For Binary As #TempFile
Redim LoadBytes(1 To Lof(TempFile)) As Byte
Get #TempFile,,LoadBytes
Close TempFile
Text1.Text=StrConv(LoadBytes,vbUniCode)
用二进制文件比其他方法快哪里去了
把文本文件内容读取TextBox:
Dim TempFile As Long
Dim LoadBytes() As Byte
TempFile=FreeFile
Open 文件名 For Binary As #TempFile
Redim LoadBytes(1 To Lof(TempFile)) As Byte
Get #TempFile,,LoadBytes
Close TempFile
Text1.Text=StrConv(LoadBytes,vbUniCode)
#2
我觉得也可能是因为缓冲区的问题,不过因为一行的长度不固定,我不好设定缓冲区,你说的方法文件小可以,但要把几十兆甚至上百兆的东西都读入内存,这样开销会很大,而且我的操作主要是基于行处理的,都读入的话处理起来也不太方便。另外textbox的限制是32K,而如果用richtext是不是有点罗嗦了?
#3
一次读取一定大小(比如1K)
再查找换行符,合并字符串
再查找换行符,合并字符串
#4
zyl910(910:分儿,我来了!):
能不能说详细点,我也想知道。
能不能说详细点,我也想知道。
#5
谢谢,试过了读一段内容放入缓冲区,再用split拆出行来,可我感觉我缓冲区设为1024和2048速度没区别啊?是不是缓冲区再大也不见得能再提高多大的效率了?速度倒是和line input相近了,可还是有些慢,不过不大。