首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

(请帮忙)怎么从.OUT(数据文件)中选择自己想要的数据,并保存在另一各文件

2012-01-06 
(请各位高手帮忙)如何从.OUT(数据文件)中选择自己想要的数据,并保存在另一各文件************************

(请各位高手帮忙)如何从.OUT(数据文件)中选择自己想要的数据,并保存在另一各文件
*********************************************************
          *                           各层构件数量、构件材料和层高                             *
          *********************************************************

  层号       塔号               梁数                 柱数                 墙数                 层高               累计高度
                                (混凝土)           (混凝土)           (混凝土)           (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,谢谢

[解决办法]
比较笨的方法是逐行分析,好处是对文件内容的格式要求不高

Option Explicit

Sub 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 Sub

Function 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

热点排行