| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 107 人关注过本帖
标题:请教有关把数据文件读入文本框的程序问题
收藏  订阅  推荐  打印 
jiafeng6
Rank: 1
等级:新手上路
帖子:9
积分:190
注册:2007-9-1
请教有关把数据文件读入文本框的程序问题

程序实现的功能:打开数据文件输入到text1.text中

Private Sub Command1_Click()
Dim strFilename As String
Dim strLine As String
CommonDialog1.ShowOpen
strFilename = CommonDialog1.FileName
Text1.Text = ""
filenum = FreeFile
If strFilename <> "" Then
Open strFilename For Input As filenum
Do While Not EOF(filenum)
Line Input #filenum, strLine
Text1.Text = Text1.Text + strLine + Chr(13) + Chr(10)
Loop
Close filenum
End If
End Sub
问题:
1、为什么在读入大量的数据的时候会很慢(比如一行5个数据,共8000行的数据)??
2、而且读进TEXT1.TEXT的数据也不全(比如一行5个数据,共8000行的数据,只能读进去一部分)??
比如说把上传的示例数据文件读入,就读不全,而且很慢!

搜索更多相关主题的帖子: 数据文件  文本  
2007-10-9 22:10
放纵思想
Rank: 1
来自:河南焦作
等级:新手上路
帖子:22
积分:296
注册:2007-6-23

If strFilename <> "" Then
Open strFilename For Input As filenum
Do While Not EOF(filenum)
Line Input #filenum, strLine
Text1.Text = Text1.Text + strLine + Chr(13) + Chr(10)
Loop
Close filenum
End If


改为:

If strFilename <> "" Then
Dim s As String
Open strFilename For Input As filenum
Do While Not EOF(filenum)
Line Input #filenum, strLine
s = s & strLine & Chr(13) & Chr(10)
'Text1.Text = Text1.Text + strLine + Chr(13) + Chr(10)
Loop
Close filenum
Text1.Text = s
End If



2007-10-9 22:41
放纵思想
Rank: 1
来自:河南焦作
等级:新手上路
帖子:22
积分:296
注册:2007-6-23

可以用以下方法测试两种方法的运行时间差别,可以看到方法运行时间为 0 ,而方法二运行时间达到100以上,效率差距是很大的.

Private Declare Function timeGetTime Lib "winmm.dll" () As Long

Private Sub Command1_Click()
Dim StartTime As Long, EndTime As Long, Time1 As Long, Time2 As Long

Dim i As Integer, s As String

'测试第一种方法
StartTime = timeGetTime
For i = 0 To 1000
s = s & CStr(i)
Next
Text1.Text = s
EndTime = timeGetTime
Text1.Text = ""
Time1 = EndTime - StartTime

'测试第二种方法
StartTime = timeGetTime
For i = 0 To 1000
Text1.Text = Text1.Text & CStr(i)
Next

EndTime = timeGetTime
Time2 = EndTime - StartTime

MsgBox "方法一用时: " & CStr(Time1) & " 毫秒" & vbCrLf & _
"方法二用时: " & CStr(Time2) & " 毫秒" & vbCrLf & _
"相差: " & CStr(Time2 - Time1) & " 毫秒"
End Sub

[此贴子已经被作者于2007-10-9 22:56:52编辑过]

2007-10-9 22:55
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.052179 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved