vb 读取txt 某列的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 20:13:02
有数据格式中间部分如下
想提取 第二列 最接近80的数据(该值大于80,与80的绝对值最小·),如何设计程序···

……
------- ---------- ----
1. .0000 1
100. .0000 1
200. .2005E-04 2
300. .2199 2
400. 4.637 2
500. 15.43 2
600. 25.44 2
700. 32.84 1
800. 52.08 1
900. 68.30 1
1000. 79.55 1
1100. 85.77 1
1200. 87.92 1
1300. 87.26 1
1400. 84.94 1
1500. 85.55 1
1600. 84.80 1
1700. 83.04 1
1800. 80.74 1
1900. 81.09 3

'wanggang519999太麻烦了,而且最后计算的结果也不对。其实按照你的数据格式,有更好的算法,看我的代码,注释已经很详细了。

Private Sub Command1_Click()
Dim tmpStr$, ArrStr$(), tmpInt#, RltStr$, LineNum%, RltLine%
LineNum = 1
tmpInt = 999 ^ 10 '定义一个足够大的数
Open "c:\1.txt" For Input As #1'假设数据文件在 C:\
Do While Not EOF(1)
Line Input #1, tmpStr '读取第一行
tmpStr = LTrim(tmpStr) '删除每行左边的空格,以便提取第二列数据
ArrStr = Split(tmpStr, " ") '数据是以三个空格为分隔符的,字符串数组元素ArrStr(1)便是第二列的数据
If Abs(80 - Val(ArrStr(1))) < tmpInt Then'比较绝对值
tmpInt = Abs(80 - Val(ArrStr(1)))
RltStr = tmpStr
RltLine = LineNum'存储结果
End If
LineNum = LineNum + 1
Loop
Close #1
MsgBox "绝对值据80最小的数据是第" & RltLine & "行。" & vbCrLf & RltStr
End Sub

应该能满足你的要求,且加了注释

Private Sub Command1_Click()

Dim strLine As String
Dim data() As String
Dim X As Double, Y As Double
<