有一个文本数据,形式如图所示
-0.017 -0.014 -0.015 -0.017 -0.013 -0.025 -0.016 0.008
-0.019 -0.014 -0.018 -0.041 -0.025 -0.025 -0.020 -0.019
-0.008 -0.026 -0.025 -0.020 -0.022 -0.020 -0.020 -0.035
-0.025 -0.017 -0.022 -0.020 -0.020 -0.019 -0.022 -0.028
-0.018 -0.020 -0.016 -0.017 -0.028 -0.030 -0.027 -0.015
-0.015 -0.021 -0.002 -0.016 -0.014 -0.020 -0.026 -0.012
-0.013 -0.011 -0.016 -0.016 -0.018 -0.022 -0.020 -0.020
-0.021 -0.014 -0.018 -0.032 -0.019 -0.018 -0.037 -0.030
-0.063 -0.039 -0.156 -0.057 -0.069 -0.063 -0.036 -0.079
7685.813 -0.041 0.060 -0.045 -0.111 -0.098 -0.075 -0.083
-0.126 -0.097 -0.039 -0.089 -0.114 -0.077 -0.077 -0.080
-0.094 -0.119 -0.053 0.008 -0.131 -0.083 -0.068 -0.037 现在只需要读取前五行(因为第一行是空行,也就是前四行数据),即前32个数据,作为Y值,每个Y值对应的X值已经固定了。然后打印曲线。因为要对每一个数据进行计算,所以想读取前32个数据到textbox,每一个数据对应一个个textbox。或者把前32个数据存到一个数组中也行虽然有想法,但是没能实现,初学,大家多给讲解一下!谢谢
-0.017 -0.014 -0.015 -0.017 -0.013 -0.025 -0.016 0.008
-0.019 -0.014 -0.018 -0.041 -0.025 -0.025 -0.020 -0.019
-0.008 -0.026 -0.025 -0.020 -0.022 -0.020 -0.020 -0.035
-0.025 -0.017 -0.022 -0.020 -0.020 -0.019 -0.022 -0.028
-0.018 -0.020 -0.016 -0.017 -0.028 -0.030 -0.027 -0.015
-0.015 -0.021 -0.002 -0.016 -0.014 -0.020 -0.026 -0.012
-0.013 -0.011 -0.016 -0.016 -0.018 -0.022 -0.020 -0.020
-0.021 -0.014 -0.018 -0.032 -0.019 -0.018 -0.037 -0.030
-0.063 -0.039 -0.156 -0.057 -0.069 -0.063 -0.036 -0.079
7685.813 -0.041 0.060 -0.045 -0.111 -0.098 -0.075 -0.083
-0.126 -0.097 -0.039 -0.089 -0.114 -0.077 -0.077 -0.080
-0.094 -0.119 -0.053 0.008 -0.131 -0.083 -0.068 -0.037 现在只需要读取前五行(因为第一行是空行,也就是前四行数据),即前32个数据,作为Y值,每个Y值对应的X值已经固定了。然后打印曲线。因为要对每一个数据进行计算,所以想读取前32个数据到textbox,每一个数据对应一个个textbox。或者把前32个数据存到一个数组中也行虽然有想法,但是没能实现,初学,大家多给讲解一下!谢谢
'从指定文件中读取每段的前32个数值(4行)
'
'返回值:
' 所有读取到的数值
'
Dim lFn As Long, sBuff As String, LineBuff() As String, sTmp() As String, OutBuff() As Single
Dim I As Long, J As Long, K As Long, L As Long, IsNewBlock As Boolean
lFn = FreeFile
Open sFileName For Binary As #lFn
sBuff = Space(LOF(lFn))
Get #lFn, , sBuff
Close #1
For I = 1 To 4
sBuff = Replace(sBuff, " ", " ")
Next
sBuff = Replace(sBuff, Chr(0), "")
Debug.Print sBuff
IsNewBlock = False
L = -1
ReDim OutBuff(0)
LineBuff() = Split(sBuff, vbCrLf)
For I = 0 To UBound(LineBuff)
LineBuff(I) = Trim(LineBuff(I))
If Len(LineBuff(I)) > 4 Then '是否有效行
If J > -1 Then
J = J + 1 '当前段读取行数计数
If J = 5 Then '当前行是第5行了
J = -1 '初始化行数,等待下一个空行
Else
sTmp() = Split(LineBuff(I), " ") '按空格拆分当前行的数据
For K = 0 To UBound(sTmp)
L = L + 1
ReDim Preserve OutBuff(L)
OutBuff(L) = CSng(sTmp(K))
Next
End If
End If
Else
J = 0
End If
Next
K = -1
For I = 0 To (UBound(OutBuff) + 1) / 8 - 1
For J = 0 To 7
K = K + 1
Debug.Print OutBuff(K),
Next
Debug.Print
Next
Read32 = OutBuff
End Function