当前位置:编程学习 > VB >>

求助!

现在想要做的是打开一个文本文件,此文本文件有若干行(大于两千),想逐行读取此文本文件,找到待处理的公式并将公式显示出来。(只显示到一次项,即Energy(keV) =    10.200 +     0.457*ch即可)现在运行的时候不报错,但是在打开要处理的文件以后VB窗口就没有任何反应了,想请教一下这段代码有什么问题?是不是进入什么死循环了?
在程序行中的一些代码是我从他人的程序中拷贝过来的,我已经用红色标注,但是我不太明白他们的意思,想请各位能否顺便给我解释一下,最好能在后面给出注释,看看能否适合在这里使用?非常感谢!!
待处理的公式:   
(此公式前有四位字符为空格)Energy(keV) =    10.200 +     0.457*ch +  0.00E+000*ch^2 +  0.00E+000*ch^3
000*ch^2的意思是0乘以ch的二次方
代码:Private Sub Command1_Click()
MsgBox "是否继续?", vbYesNo
Dim filename1 As String
CommonDialog1.ShowOpen
filename1 = CommonDialog1.FileName
If filename1 = "" Then
MsgBox "请选择文件!"
Exit Sub
End If
Dim gongshi As String 
Dim fs As New FileSystemObject
Dim ts As TextStream
Set ts = fs.OpenTextFile(filename1)
Dim ss(3000) As String
Dim tt() As String
Dim rr() As String
Dim i, j As Integer
i = 0
j = 0
While Not ts.AtEndOfLine
     ss(i) = ts.ReadLine
     i = i + 1
WendWhile j < UBound(ss)
If Left(Trim(ss(i)), 6) = "energy" Then
     gongshi = Mid(ss(i), 1, 36)
     End If
     Wend
End Sub

VB --------------------编程问答-------------------- 就打开文件查找,用得着这么麻烦吗?不用FSO:
Option Explicit

Private Sub Command1_Click()
    Dim Fnum As Long, Fbyte() As Byte, arr() As String, GongShi As String, i As Long
    ' 设置“CancelError”为 True
    CommonDialog1.CancelError = True
    On Error GoTo ErrHandler
    ' 设置标志
    CommonDialog1.Flags = cdlOFNHideReadOnly
    ' 设置过滤器
    CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & "(*.txt)|*.txt"
    ' 指定缺省的过滤器
    CommonDialog1.FilterIndex = 2
    ' 显示“打开”对话框
    CommonDialog1.ShowOpen
    ' 显示选定文件的名字
    Fnum = FreeFile
    Open CommonDialog1.FileName For Binary As #Fnum
    ReDim Fbyte(0 To LOF(Fnum) - 1)
    Get #Fnum, , Fbyte
    Close #Fnum
    arr = Split(StrConv(Fbyte, vbUnicode), vbCrLf)
    For i = 0 To UBound(arr)
        If InStr(1, LCase(arr(i)), "energy") > 0 Then
           GongShi = arr(i): Exit For
        End If
    Next
    GongShi = Mid(GongShi, 1, 36)
    Debug.Print GongShi '最后的公式
    Exit Sub
ErrHandler:
    ' 用户按了“取消”按钮
    Exit Sub
End Sub
--------------------编程问答-------------------- 你好,非常感谢您的解答,我使用了您的代码,可是屏幕没有显示,是不是还需要其他的操作,我是新手一个,还望前辈能够为我解答,谢谢!!
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,