VB mid 和 InStr的用法
小弟刚接触vb想从一个txet控件中取值,去不出来PrivateSubCommand1_Click()DimmlAsString,g的位置,x的位置AsByteml=LC...
小弟刚接触vb想从一个txet控件中取值,去不出来
Private Sub Command1_Click()
Dim ml As String, g的位置, x的位置 As Byte
ml = LCase(Text1.Text)
g的位置 = InStr(ml, "g")
x的位置 = InStr(ml, "x")
Label1.Caption = Val(Mid(ml, x的位置 + 1, 3))
Label2.Caption = Val(Mid(ml, g的位置 + 1, x的位置 - g的位置 - 1))
End Sub
我在控件中输入 G01 G02 X03 时 Label1中显示01,请高手指点怎么才能找到第二个G在字符串的位置啊?
谢谢你们的回答,不过我的最终目的是分别取值“G** G** X** Y**”或是“ G** X** Y**”字符串中这几个字母后面的数(要求程序对这两种格式的都能识别),有什么好的方法么? 展开
Private Sub Command1_Click()
Dim ml As String, g的位置, x的位置 As Byte
ml = LCase(Text1.Text)
g的位置 = InStr(ml, "g")
x的位置 = InStr(ml, "x")
Label1.Caption = Val(Mid(ml, x的位置 + 1, 3))
Label2.Caption = Val(Mid(ml, g的位置 + 1, x的位置 - g的位置 - 1))
End Sub
我在控件中输入 G01 G02 X03 时 Label1中显示01,请高手指点怎么才能找到第二个G在字符串的位置啊?
谢谢你们的回答,不过我的最终目的是分别取值“G** G** X** Y**”或是“ G** X** Y**”字符串中这几个字母后面的数(要求程序对这两种格式的都能识别),有什么好的方法么? 展开
2个回答
展开全部
g的位置 = InStr(InStr(ml, "g") + 1, ml, "g")
从第一个G的后一位开始找!
Private Sub Command1_Click()
Dim ml(3) As String, s As String
If Len(Trim(Text1.Text)) < 15 Then
s = LCase(Text1.Text) & Space(4)
Else
s = LCase(Text1.Text)
End If
For i = 0 To 3
ml(i) = Split(s, " ")(i)
Print ml(i)
Print Trim(Mid(ml(i), 1, 1)) & " : " & Trim(Mid(ml(i), 2, 2))
Next i
'Label1.Caption = Join(ml, ",")
'Label2.Caption = Trim(Mid(ml(0), 2, 3))
'G01 G02 X03 Y04
End Sub
从第一个G的后一位开始找!
Private Sub Command1_Click()
Dim ml(3) As String, s As String
If Len(Trim(Text1.Text)) < 15 Then
s = LCase(Text1.Text) & Space(4)
Else
s = LCase(Text1.Text)
End If
For i = 0 To 3
ml(i) = Split(s, " ")(i)
Print ml(i)
Print Trim(Mid(ml(i), 1, 1)) & " : " & Trim(Mid(ml(i), 2, 2))
Next i
'Label1.Caption = Join(ml, ",")
'Label2.Caption = Trim(Mid(ml(0), 2, 3))
'G01 G02 X03 Y04
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询