阿杰 发表于 2008-6-9 08:25:28

[源码]文件操作-读取文件内容的简洁方法

<p><font face="Verdana">'读取文件内容的简洁方法<br/>'读取text文件的最快方法是使用Input$函数,就象下面的过程:</font></p>
<p><font face="Verdana">Function FileText (filename$) As String<br/>&nbsp;&nbsp;&nbsp; '逆风编程精品<br/>&nbsp;&nbsp;&nbsp; Dim handle As Integer<br/>&nbsp;&nbsp;&nbsp; handle = FreeFile<br/>&nbsp;&nbsp;&nbsp; Open filename$ For Input As #handle<br/>&nbsp;&nbsp;&nbsp; FileText = Input$(LOF(handle), handle)<br/>&nbsp;&nbsp;&nbsp; Close #handle<br/>End Function</font></p>
<p><font face="Verdana">'使用上述方法要比使用Input命令读取文件每一行的方法快很多。下面是应用这个函数读取Autoexec.bat的内容到多行textbox控件的例子:<br/>'Text1.Text = FileText("c:\autoexec.bat")<br/>'但请注意:当文件包含Ctrl-Z(EOF)字符时,上面的函数代码可能会发生错误。因此,要修改一下代码:</font></p>
<p><font face="Verdana">Function FileText(ByVal filename As String) As String<br/>&nbsp;&nbsp;&nbsp; Dim handle As Integer<br/>&nbsp;&nbsp;&nbsp; ' 判断文件存在性<br/>&nbsp;&nbsp;&nbsp; If Len(Dir$(filename)) = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Err.Raise 53 '文件没有找到<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; ' 以binary模式打开文件<br/>&nbsp;&nbsp;&nbsp; handle = FreeFile<br/>&nbsp;&nbsp;&nbsp; Open filename$ For Binary As #handle<br/>&nbsp;&nbsp;&nbsp; ' 读取内容,关闭文件<br/>&nbsp;&nbsp;&nbsp; FileText = Space$(LOF(handle))<br/>&nbsp;&nbsp;&nbsp; Get #handle, , FileText<br/>&nbsp;&nbsp;&nbsp; Close #handle<br/>End Function</font></p>

马大哈 发表于 2008-6-11 10:31:40

<p>读文本,我的办法是这样:</p>
<p>&nbsp;</p>
<p>Dim Buff As String,FileLine() As String</p>
<p>&nbsp;</p>
<p>Open "XXX.TXT" For Binary As #1</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Buff=String(Lof(1),Chr(0))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Get 1,,Buff</p>
<p>Close #1</p>
<p>FileLine=Split(Buff,vbCrlf)</p>
<p>&nbsp;</p>
<p>这样子的话,Buff里就是文本的所有内容,而FileLine()数组里就是每一行的内容.</p>
<p>这是在李海那里学来的,嘿嘿</p>

zhouhui222 发表于 2008-7-8 17:41:44

Split 分离的话 怎么知道 有多少个数组呢??

snyga 发表于 2008-7-9 10:58:55

5988143 发表于 2009-3-16 09:08:38

不錯學習了

reaten 发表于 2010-3-27 20:39:52

我的方法如下:
首先将Text的MultiLine的属性设置为True
然后在适当位置添加如下代码
fno = FreeFile()
Open "XXXX.txt" For Input As #fno
Do Until EOF(fno)
Line Input #fno, newline
Text1.Text = Text1.Text & newline & Chr(13) + Chr(10)
Loop
Close #fno
页: [1]
查看完整版本: [源码]文件操作-读取文件内容的简洁方法