读书人

怎么读取一个文本里的前32个数据作为Y

发布时间: 2012-04-21 14:34:44 作者: rapoo

如何读取一个文本里的前32个数据作为Y值打印曲线
有一个文本数据,形式如图所示

VB code
   -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个数据存到一个数组中也行

虽然有想法,但是没能实现,初学,大家多给讲解一下!谢谢

[解决办法]
VB code
Public Function Read32(ByVal sFileName As String) As Single()    '从指定文件中读取每段的前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 = OutBuffEnd Function 

读书人网 >VB

热点推荐