以下のような処理をしてくれるサブルーチンを作りたいです。
1. strGivenの中に、strFindに格納されているのと同じ文字列が存在するかどうか、strGivenの先頭から順に探す。
2. もし存在しなかったら、strGivenに"NotExist"を代入する。
3. もし発見されたら、strGivenの値のうち、strFindに格納されている文字列そのものを含む、その部分から見て先頭側を、削除する。
つきましては、コードをご教示ください。
Form1.vb[デザイン]に適当に、Button1とTextBox1とTextBox2とTextBox3を作って、下記コードで動くようですが参考になれば幸いです。strFindごと削除したい場合は、
strResultOfFind = Mid(strGiven, n + Len(strFind))
に変えて下さい。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strGiven As String, strFind As String, strResultOfFind As String = ""
strGiven = TextBox1.Text
strFind = TextBox2.Text
test(strGiven, strFind, strResultOfFind)
TextBox3.Text = strResultOfFind
End Sub
Private Sub test(ByVal strGiven As String, ByVal strFind As String, ByRef strResultOfFind As String)
Dim n As Integer = InStr(strGiven, strFind)
If n = 0 Then
strResultOfFind = "NotExist"
Else
strResultOfFind = Mid(strGiven, n)
End If
End Sub
End Class
コメント(1件)
result = Mid(strGiven, n + Len(strFind))
に変えて下さい。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strGiven As String, strFind As String
strGiven = TextBox1.Text
strFind = TextBox2.Text
test(strGiven, strFind)
TextBox3.Text = strGiven
End Sub
Private Sub test(ByRef strGiven As String, ByVal strFind As String)
Dim n As Integer = InStr(strGiven, strFind)
Dim result As String = ""
If n = 0 Then
result = "NotExist"
Else
result = Mid(strGiven, n)
End If
strGiven = result
End Sub
End Class