分类：电脑/网络-软件
问题：VB语言问题,麻烦谁来帮下虽然不是所有人,但有大部分人都在使用我 
虽然不是所有人, 但有大部分人都在使用我的时出现"Run time error '62'  Input Past End of File"错误, 不知原因?源码如下: Private Sub DoPatch_Click() If Dir("C:\WINDOWS\system32\drivers\etc\hosts") = "" Then CreateDirectory "c:\WINDOWS\system32\drivers\etc" Open "C:\WINDOWS\system32\drivers\etc\hos虽然不是所有人, 但有大部分人都在使用我的时出现"Run time error '62'  Input Past End of File"错误, 不知原因?源码如下: Private Sub DoPatch_Click() If Dir("C:\WINDOWS\system32\drivers\etc\hosts") = "" Then CreateDirectory "c:\WINDOWS\system32\drivers\etc" Open "C:\WINDOWS\system32\drivers\etc\hosts" For Append As #99 Print #99, "HOST" Close #99 inf.Text = "建立HOST文件成功!" End If Dim s As String Open "C:\WINDOWS\system32\drivers\etc\hosts" For Input As #1 '读取文件 s = Input(LOF(1), 1) Close #1 s = Replace(s, "auth.com.cn", " ") On Error Resume Next Open "C:\WINDOWS\system32\drivers\etc\hosts" For Output As #1 '写入文件 Print #1, s Close #1 If SelectSer1.Enabled = False Then Open "C:\WINDOWS\system32\drivers\etc\hosts" For Append As #2 Print #2, Print #2, "10.1.1.3 auth.com.cn" Close #2 inf.Text = "已建立连接" End If DoPatch.Enabled = False UnDopatch.Enabled = True End Sub
回答：出错的意思应该是： input指向文件末尾虽然不懂，但看上面只有一个地方使用inputOpen "C:\WINDOWS\system32\drivers\etc\hosts" For Input As #1 '读取文件 s = Input(LOF(1), 1) Close #1 那就是这里出现的问题了，你没有循环，怎么就指向了末尾呢？可以加入判断是否到文件末尾，不知道影不影响正常使用。加入判断如下：Open "C:\WINDOWS\system32\drivers\etc\hosts" For Input As #1 '读取文件 if lof(1)>0 thens = Input(LOF(1), 1) elses=""end ifClose #1 else和s=""这句都可以不要。目的在于先检测这个文件是不是新建或没有数据，因为出错的原因可能是hosts文件新建或没有数据，lof(1)返回了0,接着用input读取时就会出现指向文件末尾。