如何读取并处理txt文件中的某一行或几行数据
小生是菜鸟一只,初学vb,遇到困难,寻求各位高人的帮忙。问题如何读取并处理txt文件中的某一行或几行数据,数据处理一般就是数理统计方面的多一些谢谢了关于几分方面,由于俺只...
小生是菜鸟一只,初学vb,遇到困难,寻求各位高人的帮忙。
问题如何读取并处理txt文件中的某一行或几行数据,数据处理一般就是数理统计方面的多一些
谢谢了
关于几分方面,由于俺只有25分,在此俺就出15分吧。
由于俺只处理数据,可能关于控件方面的俺根本就不懂,请各位高人指点的时候最好不要有这方面的东西和FSO之类的,因为俺暂时看不懂。谢谢
例如:
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
比如读取第二行,并求出这一行的最大值,最小值和平均值
不好意思,还要麻烦VB妮可,要是这个数组中存在数据是不可靠的要剔除,那该怎么办,帮人帮到底吧。谢谢了
假如数据
1966 530 660 420 520 540 480 450 32766 410 440 530 520 520
上面数据是一行的,就是读出来的那一行,在对数据进行计算的时候1966是时间,不能对平均值和大小比较,另外32766是错误的值要剔除,该怎么做,另外要是三维数组的话处理思想是不是和二维数组的思想是一样的。 展开
问题如何读取并处理txt文件中的某一行或几行数据,数据处理一般就是数理统计方面的多一些
谢谢了
关于几分方面,由于俺只有25分,在此俺就出15分吧。
由于俺只处理数据,可能关于控件方面的俺根本就不懂,请各位高人指点的时候最好不要有这方面的东西和FSO之类的,因为俺暂时看不懂。谢谢
例如:
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
比如读取第二行,并求出这一行的最大值,最小值和平均值
不好意思,还要麻烦VB妮可,要是这个数组中存在数据是不可靠的要剔除,那该怎么办,帮人帮到底吧。谢谢了
假如数据
1966 530 660 420 520 540 480 450 32766 410 440 530 520 520
上面数据是一行的,就是读出来的那一行,在对数据进行计算的时候1966是时间,不能对平均值和大小比较,另外32766是错误的值要剔除,该怎么做,另外要是三维数组的话处理思想是不是和二维数组的思想是一样的。 展开
2个回答
展开全部
上例子吧.. 和需要怎么处理,给你写参考代码.
呵呵,补充:
假设你的文本文件为c盘的1.txt,内容和你写的一样,例子就是读取第2行,然后计算它的最大,最小和平均..
Private Sub Command1_Click()
Dim a$, b, i%
Open "c:\1.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, a
i = i + 1
If i = 2 Then
b = Split(Trim(a), " ")
Exit Do
End If
Loop
Close #1
Dim max%, min%, s%
If UBound(b) > 0 Then
max = b(0): min = b(0)
For i = 0 To UBound(b)
If Val(b(i)) > max Then max = Val(b(i))
If Val(b(i)) < min Then min = Val(b(i))
s = s + Val(b(i))
Next
Print "读取的行为:"; Join(b)
Print "其中的最大值,最小值,平均数分别为:"; max; min; s / (UBound(b) + 1)
End If
End Sub
========================
补充:请详细说明
你这数据只有1行了呀?和原题不符的..
其实也是一样,就象你说的.1996是日期. 3XXXX那个数太大.不符合..
这些都是规则 , 你能用语言形容出来的,就能用VB表达出来..
先不管对错,拿到数组中后,可以对不符号的数.比如大于一个范围的.都可以删除这个数的..
最后数组中所有数符合要求了.再进行计算等操作就行了.
呵呵,补充:
假设你的文本文件为c盘的1.txt,内容和你写的一样,例子就是读取第2行,然后计算它的最大,最小和平均..
Private Sub Command1_Click()
Dim a$, b, i%
Open "c:\1.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, a
i = i + 1
If i = 2 Then
b = Split(Trim(a), " ")
Exit Do
End If
Loop
Close #1
Dim max%, min%, s%
If UBound(b) > 0 Then
max = b(0): min = b(0)
For i = 0 To UBound(b)
If Val(b(i)) > max Then max = Val(b(i))
If Val(b(i)) < min Then min = Val(b(i))
s = s + Val(b(i))
Next
Print "读取的行为:"; Join(b)
Print "其中的最大值,最小值,平均数分别为:"; max; min; s / (UBound(b) + 1)
End If
End Sub
========================
补充:请详细说明
你这数据只有1行了呀?和原题不符的..
其实也是一样,就象你说的.1996是日期. 3XXXX那个数太大.不符合..
这些都是规则 , 你能用语言形容出来的,就能用VB表达出来..
先不管对错,拿到数组中后,可以对不符号的数.比如大于一个范围的.都可以删除这个数的..
最后数组中所有数符合要求了.再进行计算等操作就行了.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询