我想删除text1.text和text2.text中相同的字符串,而上面的程序对字符串的位置太敏感了,如:text1:"6 7"与text2:"6   7",无法删除“6 7”

解决方案 »

  1.   

    偶来 VB 版与你讨论 :)你的意思大概是与空格无关吧.解决办法: 比较字符串前, 先把数组中的空格删掉, 也就是把 " " 替换为 ""这样:Replace(S_1[i], " ", "")
    Replace(S_2[j], " ", "")然后再比较, 这样应该可以符合你的要求
      

  2.   

    6 7     6  7 根本就不同
    如果压缩空格的话你就得不到原来的数值可以这样
    Private Sub Command1_Click()
    Cls
    Open "c:\vb\vb\finel.txt " For Output As #1
    Dim S_1() As String
    Dim S_2() As String
    Dim S_3() As String
    Dim R As String
    S_1 = Split(Text1.Text, vbCrLf)
    S_3 = Split(Text1.Text, vbCrLf)
    S_2 = Split(Text2.Text, vbCrLf)
    For i = 0 To UBound(S_1)
    For j = 0 To UBound(S_2)
    Replace(S_1[i], " ", "")
    Replace(S_2[j], " ", "")
    If S_1(i) = S_2(j) Then S_3(i) = " " Next
    Next
    For i = 0 To UBound(S_1)
    If S_1(i) <> " " Then Print S_1(i)Print #1, S_3(i)Next
    Close #1
    End SubPrivate Sub Form_Load()
    Text1.Text = " "
    Text2.Text = " "
    End Sub
      

  3.   

    在Replace(S_1[i], " ", "")
      Replace(S_2[j], " ", "")处提示语法错误!
      

  4.   

    call Replace(S_2[j], " ", "")
      

  5.   

    不行呀,直接显示text1的内容。
      

  6.   

    Private Sub Command1_Click()
    Cls
    Open "c:\vb\vb\finel.txt " For Output As #1
    Dim S_1() As String
    Dim S_2() As String
    Dim t1 As String
    Dim t2 As String
    Dim R As StringS_1 = Split(Text1.Text, vbCrLf)
    S_2 = Split(Text2.Text, vbCrLf)
    For i = 0 To UBound(S_1)
    For j = 0 To UBound(S_2)
    t1 = S_1(i)
    t2 = S_2(j)If Replace(t1, " ", "") = Replace(t2, " ", "") Then S_1(i) = " " Next
    Next
    For i = 0 To UBound(S_1)
    If S_1(i) <> " " Then Print S_1(i)Print #1, S_1(i)Next
    Close #1
    End SubPrivate Sub Form_Load()
    Text1.Text = " "
    Text2.Text = " "
    End Sub
      

  7.   

    可以这样
    Private Sub Command1_Click()
    Cls
    Open "c:\vb\vb\finel.txt " For Output As #1
    Dim S_1() As String
    Dim S_2() As String
    Dim S_3() As String
    Dim R As String
    S_1 = Split(Text1.Text, vbCrLf)
    S_3 = Split(Text1.Text, vbCrLf)
    S_2 = Split(Text2.Text, vbCrLf)
    For i = 0 To UBound(S_1)
    For j = 0 To UBound(S_2)
    Replace(S_1[i], " ", "")
    Replace(S_2[j], " ", "")
    If S_1(i) = S_2(j) Then S_3(i) = " " Next
    Next
    For i = 0 To UBound(S_1)
    If S_3(i) <> " " Then Print S_1(i)Print #1, S_3(i)Next
    Close #1
    End SubPrivate Sub Form_Load()
    Text1.Text = " "
    Text2.Text = " "
    End Sub
      

  8.   

    可以这样
    Private Sub Command1_Click()
    Cls
    Open "c:\vb\vb\finel.txt " For Output As #1
    Dim S_1() As String
    Dim S_2() As String
    Dim S_3() As String
    Dim R As String
    S_1 = Split(Text1.Text, vbCrLf)
    S_3 = Split(Text1.Text, vbCrLf)
    S_2 = Split(Text2.Text, vbCrLf)
    For i = 0 To UBound(S_1)
    For j = 0 To UBound(S_2)
    call Replace(S_1[i], " ", "")
    call Replace(S_2[j], " ", "")
    If S_1(i) = S_2(j) Then S_3(i) = " " Next
    Next
    For i = 0 To UBound(S_1)
    If S_1(i) <> " " Then Print S_1(i)Print #1, S_3(i)Next
    Close #1
    End SubPrivate Sub Form_Load()
    Text1.Text = " "
    Text2.Text = " "
    End Sub
      

  9.   

    Private Sub Command1_Click()
    Cls
    Open "c:\vb\vb\finel.txt " For Output As #1
    Dim S_1() As String
    Dim S_2() As String
    Dim S_3() As String
    Dim R As String
    S_1 = Split(Text1.Text, vbCrLf)
    S_3 = Split(Text1.Text, vbCrLf)
    S_2 = Split(Text2.Text, vbCrLf)
    For i = 0 To UBound(S_1)
    For j = 0 To UBound(S_2)
    call Replace(S_1[i], " ", "")
    call Replace(S_2[j], " ", "")
    If S_1(i) = S_2(j) Then S_3(i) = " " Next
    Next
    For i = 0 To UBound(S_1)
    If S_3(i) <> " " Then Print S_1(i)Print #1, S_3(i)Next
    Close #1
    End SubPrivate Sub Form_Load()
    Text1.Text = " "
    Text2.Text = " "
    End Sub