[源码]文件操作-读取文件内容的简洁方法
<p><font face="Verdana">'读取文件内容的简洁方法<br/>'读取text文件的最快方法是使用Input$函数,就象下面的过程:</font></p><p><font face="Verdana">Function FileText (filename$) As String<br/> '逆风编程精品<br/> Dim handle As Integer<br/> handle = FreeFile<br/> Open filename$ For Input As #handle<br/> FileText = Input$(LOF(handle), handle)<br/> 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/> Dim handle As Integer<br/> ' 判断文件存在性<br/> If Len(Dir$(filename)) = 0 Then<br/> Err.Raise 53 '文件没有找到<br/> End If<br/> ' 以binary模式打开文件<br/> handle = FreeFile<br/> Open filename$ For Binary As #handle<br/> ' 读取内容,关闭文件<br/> FileText = Space$(LOF(handle))<br/> Get #handle, , FileText<br/> Close #handle<br/>End Function</font></p> <p>读文本,我的办法是这样:</p>
<p> </p>
<p>Dim Buff As String,FileLine() As String</p>
<p> </p>
<p>Open "XXX.TXT" For Binary As #1</p>
<p> Buff=String(Lof(1),Chr(0))</p>
<p> Get 1,,Buff</p>
<p>Close #1</p>
<p>FileLine=Split(Buff,vbCrlf)</p>
<p> </p>
<p>这样子的话,Buff里就是文本的所有内容,而FileLine()数组里就是每一行的内容.</p>
<p>这是在李海那里学来的,嘿嘿</p> Split 分离的话 怎么知道 有多少个数组呢?? 不錯學習了 我的方法如下:
首先将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]