*********************************************************
     *             各层构件数量、构件材料和层高              *
     ********************************************************* 层号   塔号       梁数        柱数        墙数        层高       累计高度
                (混凝土)     (混凝土)     (混凝土)     (m)           (m)   
   1     1       157(30)      44(35)       0(25)      1.000         1.000
   2     1       149(30)      44(35)       0(25)      4.600         5.600
   3     1       149(30)      44(35)       0(25)      3.600         9.200
   4     1       149(30)      44(35)       0(25)      3.600        12.800
   5     1       149(30)      44(35)       0(25)      3.300        16.100
   6     1       149(30)      44(35)       0(25)      3.300        19.400
   7     1       149(30)      44(35)       0(25)      3.300        22.700
   8     1       157(30)      44(35)       0(25)      3.300        26.000
以上是这个文件的部分数据,这些数据前面也还有很多数据,其中包括汉字,我想从中挑选自己想要的数据,不知道采用什么办法,请各位高手指教,最好给出代码,比如我想获得累计高度中16.100,谢谢

解决方案 »

  1.   

    比较笨的方法是逐行分析,好处是对文件内容的格式要求不高Option ExplicitSub Main()
        Dim hFile As Integer
        Dim sLine As String
        Dim aFields() As String
        
        hFile = FreeFile
        Open "a.OUT" For Input Access Read As #hFile
        While Not EOF(hFile)
            Line Input #hFile, sLine
            If LineToFields(sLine, aFields) Then
                If aFields(6) = "16.100" Then
                    输出到其他文件
                End If
            End If
        Wend
        Close #hFile
    End SubFunction LineToFields(ByVal sLine As String, ByRef aFields() As String) As Boolean
        If Len(sLine) < 73 Then Exit Function
        
        ReDim aFields(6)
        aFields(0) = Trim$(Mid$(sLine, 1, 4))
        If Not IsNumeric(aFields(0)) Then Exit Function
        
        aFields(1) = Trim$(Mid$(sLine, 5, 6))
        aFields(2) = Trim$(Mid$(sLine, 11, 14))
        aFields(3) = Trim$(Mid$(sLine, 25, 12))
        aFields(4) = Trim$(Mid$(sLine, 37, 12))
        aFields(5) = Trim$(Mid$(sLine, 49, 11))
        aFields(6) = Trim$(Mid$(sLine, 60, 14))
        
        LineToFields = True
    End Function
      

  2.   

    因为这些数据是已有软件(PKPM)的,我只是想将这些数据导入我的数据文件中,因为我在做另一个软件的可视化,该软件没采用数据库