如何在VB中查找和删除两个不同文本文件中的匹配单词?

时间:2017-08-28 06:12:36

标签: vb.net

这是一个罗嗦的问题,但基本上我希望VB检查textfile1以匹配textfile2中的单词,然后删除 {{1}中所有类似单词的实例将结果输出为textfile2 输出结果不应该太困难,但我不确定在识别类似的字词时应该从哪里开始。此外,是否可以设置白名单(一遍又一遍地重复一个单词 - 我不想删除)。

这是我用于两个提示的打开文件/阅读文件对话框,两者都在文本框中直观显示。

results.txt.

感谢您的帮助!

编辑: 第一个文本文件的示例如下所示:

  

map_01,200 / 250

     

map_03,358 / 450

     

map_06,528 / 2000

第二个文件如下:

  

map_01

     

map_02

     

map_03

     

map_04

     

map_05

     

map_06

基本上第二个文件是"主列表'。我希望程序识别两个文件之间的匹配字(例如,map_01中的01),然后从主列表中删除该条目。当我谈论白名单时,我担心它会匹配像#34; map"并删除主列表中的所有内容。我并不希望它删除整个单词只是因为它匹配" map"

1 个答案:

答案 0 :(得分:1)

您必须从TextFile创建一系列单词并进行比较。我在这里为你做了这件事:

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    'make array of words from both the files
    Dim text1Array() As String = TextBox1.Text.Split(" ")
    Dim text2Array() As String = TextBox2.Text.Split(" ")
    Dim NewText As String
    NewText = TextBox2.Text
    'loop through all the words in first array
    For i = 0 To text1Array.Length - 1
        'loop through all the words in second array
        For j = 0 To text2Array.Length - 1
            'match the words
            If text1Array(i) = text2Array(j) Then
                'replace the found word with an empty character
                NewText = NewText.Replace(text2Array(j), String.Empty)
                'delete double space 
                NewText = NewText.Replace("  ", " ")
            End If
        Next  
    Next
    'save it into third textbox
    TextBox3.Text = NewText
End Sub

我这样检查过:

Textbox1 contained : 
  一,二,三,四,五,六,七,八,九,十一,十二,十二
TextBox2 contained :
  一个subaz三个sarma五个爱六个编码八个十个所有十二次

After clicking the button, TextBox3 contained:
  

subaz sarma一直喜欢编码

这完全没问题。

现在,关于白名单,我们假设您不想删除"five",即使它已匹配。这样做:

Dim WhiteListWord As String = "five"

并将条件更改为:

 If text1Array(i) = text2Array(j) And text1Array(i) <> WhiteListWord Then

textbox3中的新输出将是:

  

subaz sarma 一直喜欢编码