用VB编写的一个程序,读取10M以上的文件非常慢,请大侠帮忙优化完善一下。 谢谢!

PrivateSubCmdCheckSum_Click()DimstrWjAsStringDimaryContent()AsByteDimiAsLongDimjAsLon... Private Sub CmdCheckSum_Click()
Dim strWj As String
Dim aryContent() As Byte
Dim i As Long
Dim j As Long
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
CommonDialog1.Flags = cdlOFNHideReadOnly
CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & "(*.txt)|*.txt|Batch Files (*.bat)|*.bat"
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
txtFile.Text = CommonDialog1.FileName
Open CommonDialog1.FileName For Binary As #1
ReDim aryContent(LOF(1) - 1)
Get #1, , aryContent
Close #1
j = 0
For i = 0 To UBound(aryContent)
j = j + aryContent(i)
DoEvents
Next
Text1 = (Hex(j Mod &H10000)) 'strWj
ErrHandler:
Exit Sub
End If
End Sub
展开
 我来答
阳光上的桥
2016-10-11 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65832
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

这个应该很快:

Private Function ReadOut(FullPath)
    On Error Resume Next
    Dim Fso, FileText
    Set Fso = CreateObject("scRiPTinG.fiLEsysTeMoBjEcT")
    Set FileText = Fso.OpenTextFile(FullPath, 1, True)
    ReadOut = FileText.ReadAll
    FileText.Close
End Function

Dim s as string
s=ReadOut(txtFile.Text)
更多追问追答
追问
刚刚试了一下,好像还是老样子。不过,谢谢你了!:-D
追答
10M读入花费了多久,感觉和文件拷贝时间差不多就行了,如果要比文件拷贝慢许多,那可能是其它地方耗费了时间,可以调试的时候单独看看这个函数的时间。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式