找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 6481|回复: 5

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

[复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 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>
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 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>这是在李海那里学来的,嘿嘿[em05]</p>
我就是嗷嗷叫的老马了......

0

主题

11

回帖

0

精华

铜牌会员

积分
237
发表于 2008-7-8 17:41:44 | 显示全部楼层
Split 分离的话 怎么知道 有多少个数组呢??
头像被屏蔽

0

主题

7

回帖

0

精华

初来乍到

积分
312
发表于 2008-7-9 10:58:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

0

主题

13

回帖

0

精华

铜牌会员

积分
246
发表于 2009-3-16 09:08:38 | 显示全部楼层
不錯學習了

4

主题

16

回帖

0

精华

初来乍到

积分
0
发表于 2010-3-27 20:39:52 | 显示全部楼层
我的方法如下:
首先将Text的MultiLine的属性设置为True
然后在适当位置添加如下代码
  1. fno = FreeFile()
  2. Open "XXXX.txt" For Input As #fno
  3. Do Until EOF(fno)
  4. Line Input #fno, newline
  5. Text1.Text = Text1.Text & newline & Chr(13) + Chr(10)
  6. Loop
  7. Close #fno
复制代码
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表