这是一个罗嗦的问题,但基本上我希望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"
答案 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 五一直喜欢编码