代碼如下。
===================
Option Explicit
Private Sub Form_Click()
Dim s As String, a(10, 2) As Byte, i As Byte
Open "d:\1.txt" For Input As 1
Do Until EOF(1)
Line Input #1, s
a(i, 0) = Val(Split(s)(0))
a(i, 1) = Val(Split(s)(1))
a(i, 2) = Val(Split(s)(2))
i = i + 1
Loop
Dim inp As String, b(2) As Single, j As Byte, sum As Single, min As Single, minj As Byte
min = 10000
b(0) = Val(InputBox("第壹個數據,如果為*則輸入0", , 0))
b(1) = Val(InputBox("第二個數據,如果為*則輸入0", , 0))
b(2) = Val(InputBox("第三個數據,如果為*則輸入0", , 0))
For j = 0 To i - 1
sum = IIf(b(0), Abs(a(j, 0) - b(0)), 0) + IIf(b(1), Abs(a(j, 1) - b(1)), 0) + IIf(b(2), Abs(a(j, 2) - b(2)), 0)
If sum < min Then min = sum: minj = j
Next
Print "最符合要求的是第" & minj + 1 & "個數據:" & a(minj, 0) & "," & a(minj, 1) & "," & a(minj, 2)
Close
End Sub
用(10,*,15.2),(50.5,*,22.3)測試通過。
o 0001;
t 0101;
G97 S800 M03
M08
G0 X50 z 1;
g 71 U2 r . 1;
g 71 p 10 Q20 u . 5 w 0.1 f . 25;
n 10 G0