| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1800 人关注过本帖
标题:关于VB读取文件的问题
取消只看楼主 加入收藏
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
结帖率:92.31%
收藏
已结贴  问题点数:20 回复次数:2 
关于VB读取文件的问题
这是我的代码
程序代码:
FreeNumber = FreeFile
Open Text1.Text For Input As #FreeNumber
DoEvents

 While Not EOF(FreeNumber)
i = i + 1
Line Input #1, UnchangedData(FreeNumber)
DoEvents
Wend
Close #FreeNumber

用这个段代码只能读取到一行的字符,应该怎么修改?忘记应该这么做了,以前自己做的东西也找不到了,在此求助
在设置了节点查错之后,发现While语句在读取了一遍之后自动跳过了

如果这些不足以查错,我就把全部代码发上来
冥思苦想半天,查了半天资料还是觉得代码没错,觉得这段代码应该没问题

[此贴子已经被作者于2016-12-31 18:34编辑过]

2016-12-31 17:59
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
收藏
得分:0 
回复 2楼 xzlxzlxzl
我回去修改一下之后发现依然只能读取到一行的数据
为了方便各位查错,我将所有代码发上来
程序代码:
Dim UnchangedData() As String, ChangedData() As String
Private Sub Command1_Click()
If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Then
MsgBox "参数不完全。", vbCritical '检查参数完整性
Exit Sub
End If

If Text5.Text = "未开始转换" Then
Text5.Text = "" '清空日志
End If
Text5.Text = Text5.Text & vbCrLf & Now & "读取“" & Text1.Text & "”内的数据" '输出日志
'-----------------------

Dim LenTmp As Integer, FreeNumber As Integer


ReDim UnchangedData(1 To 65565) '重定义需要的变量
ReDim ChangedData(1 To 65565)
FreeNumber = FreeFile
Open Text1.Text For Input As #FreeNumber
DoEvents

 While Not EOF(FreeNumber)
i = i + 1
Line Input #FreeNumber, UnchangedData(i)
DoEvents
Wend
Close #FreeNumber
LenTmp = i'标记读取到了多少行
Text5.Text = Text5.Text & vbCrLf & Now & "读取到" & LenTmp & "行的数据" '输出日志

'-------------------------

Text5.Text = Text5.Text & vbCrLf & Now & "开始替换" '输出日志
DoEvents
For i = 1 To LenTmp
ChangedData(i) = Replace(UnchangedData(i), Text2.Text, Text3.Text)
DoEvents
Next i
Text5.Text = Text5.Text & vbCrLf & Now & "替换完毕" '输出日志
Text5.Text = Text5.Text & vbCrLf & Now & "开始输出到“" & Text4.Text & "”文件"  '输出日志

DoEvents
For i = 1 To LenTmp

 Open (Text4.Text) For Append As #1     '以追加方式打开文件
    Print #1, ChangedData(i) '在文件尾接着写入内容
   Close #1
   Next i
DoEvents
Close #1
Text5.Text = Text5.Text & vbCrLf & Now & "输出文件完毕"  '输出日志

End Sub

我是想做一个小程序,可以读取文件,将这个文件里的关键字用Replace更改为另外的字符,但是每次都显示只能读取到一行(我自己在代码里加入了查错模块)

[此贴子已经被作者于2017-1-2 11:39编辑过]


编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2017-01-02 11:32
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
收藏
得分:0 
我刚才想到了一个可能,就是会不会是因为我每次尝试读取的文件都是docx文件导致的问题,所以我刚才用TXT文件测试了一下,显示正常读取到了7行文件。说明代码本身在读取别的文件时没有问题。
那么问题来了,我用这个代码读取92KB的docx文档,理论上如果它只有一行,那么应该全部读取到数组的一个值里面。但实际上,它输出的时候只输出了1KB的字符,所以我才会认为它有错误。
请教一下为何会出现这种情况。

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2017-01-02 11:44
快速回复:关于VB读取文件的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017650 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved