我正在尝试构建一个专业的词典程序,而不是能够翻译多种类型的文本,我将其设计为this。
这是一个英语到阿拉伯语的字典,我使用的是txt数据库文件 使用utf8编码,如上图所示。
因为\
是英语和阿拉伯语单词之间的分隔符,
所有的问题都在字幕单选按钮内(图片中有效),因为它应该翻译电影字幕中的来源,其排列方式大致如下:
1
00:00:07,376 --> 00:00:09,526
what is your name?
2
00:00:09,776 --> 00:00:12,654
jack
3
00:00:12,896 --> 00:00:15,046
nice one
问题是每个字幕文件至少包含500行 当我把它添加到词典并按下翻译时,没有任何事情发生 它必须将整个文本标识为数据库中的一个单词,我正在尝试 要做的就是拥有这样的功能:
http://www13.0zz0.com/2015/04/02/17/426589467.jpg
当字典翻译在其数据库中找到的单词时 写道,它完全没有意义。
最后这里是单选按钮1的代码,称为字幕
我把它放在按钮1_click
的代码下,这个代码叫做translate
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If RadioButton1.Checked = True Then
Using reader As StreamReader = New StreamReader("Subtitles.txt")
Do While (True)
Dim line As String = reader.ReadLine
If line Is Nothing Then
Exit Do
End If
Dim words As String() = line.Split("\")
Dim word As String
For Each word In words
If word = TextBox1.Text Then
TextBox2.Text = words(+1)
End If
Next
Loop
End Using
End If
答案 0 :(得分:2)
问题出在你的支票word = TextBox1.Text
上,它会检查TextBox是否包含完整的单词,如果你想要替换更多的单词,可以按照以下步骤进行检查:
Using reader As StreamReader = New StreamReader("Subtitles.txt")
Dim line As String = reader.ReadLine
Dim translatedText As String = TextBox1.Text
While(line IsNot Nothing)
Dim words As String() = line.Split("\")
Dim word As String
For Each word In words
If translatedText.Contains(word) Then
translatedText = translatedText.Replace(word, words(1))
End If
Next
line = reader.ReadLine
End While
TextBox2.Text = translatedText
End Using
我已经改变了你的周期,因为Exit Do
只是ugly