编写字典程序的VB.NET问题

时间:2015-04-02 15:18:06

标签: vb.net dictionary

我正在尝试构建一个专业的词典程序,而不是能够翻译多种类型的文本,我将其设计为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

1 个答案:

答案 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