当前位置:主页   - 电脑 - 程序设计 - VB
用VB.net2008编写英汉查询程序
来源:网络   作者:佚名   更新时间:2011-10-18
收藏此页】    【字号    】    【打印】    【关闭

  Visual Studio 2008在稳定性方面增强不少,笔者在使用时很少出现BUG的情况,而且Visual Studio2008在网络应用编程与数据处理方面也比原来版本增强了不少,开发效率有了提高。最近有一位好友在写一个关于中英文查询的小程序,其中这位好友对采用SQL Server数据库还是ACCESS数据库进行了一些思考,最终这位好友选择了比较容易的ACCESS数据库进行开发。其实还有更加简单的办法,那就是不使用这些数据库同样也可以进行中英文查询程序的开发。本篇文章将介绍如何编写一个简单的英汉查询程序,希望对大家有所帮助。

  打开 Visual Studio 2008在文件 (File) 菜单上,单击新建项目 (New Project)。 在新建项目 (New Project) 对话框的模板 (Templates) 窗格中,单击 Windows 应用程序(Windows Application)。单击确定 (OK) 如图1。

  图 1

  选择Form1窗体,在Form1窗体中添加如下控件和设置其属性: 

  Label1

  Text

  输入单词:

  TextBox1

  Text

  为空

  TextBox2

  Multiline

  True

  ListBox1

  Button1

  Text

  搜索

  Button2

  Text

  增加

  Button3

  Text

  修改

  Button4

  Text

  删除

  适当地去调整控件的位置如图2

用VB.net2008编写英汉查询程序

  图2

  接下来我们需要创建一个文本文件(.txt),用这个文本文件来存储单词,作为我们的数据库。我们需要输入一些英文单词和中文意思(你可以任意的输入一些内容),(文本文件名字命名为:引用英汉词典.txt)引用英汉词典.txt这个命名非常重要一定要正确。如图3

  图3

  记住保存在程序根目录下。

  下一步选择<解决方案资源管理器>-选择显示所有文件-选中<bin文件夹>-右键选择<包括在项目中>如图4

  图4

  选中了后,我们就把bin文件夹包括在项目中了,这时bin文件夹变了颜色,我们需要再次右键选择bin文件夹-<添加>---<现有项>如图5

用VB.net2008编写英汉查询程序

  图 5

  这时我们需要将刚才建立的文本文件(引用英汉词典.txt)添加进去,注意:我们一定要将所建立的文本文件放在程序根目录下如binDebug引用英汉词典.txt

  后面我们会在代码中调用这个文件作为我们的数据库,在进行程序调试中必定要用到的。如图6

用VB.net2008编写英汉查询程序

  图6

  好了现在我们需要输入代码,首先需要进行声明:

  Public Class Form1
  Inherits System.Windows.Forms.Form
  Public Filename As String = "引用英汉词典.txt" '定义连接数据的文本TXT
  Public Myword(6500, 1) As String          '定义二维数组
  Public words As Integer = 0                 '记录连接数据的文本TXT 单词个数 
  进入Form1_Load事件
  Private Sub Form1_load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim main As String
  Dim chang As Integer     ' 单词长度
  Dim i As Integer = 0    '数组的开始位置
  Dim n As String         '读x相应的单词
  Dim m As String         '读取单词的中文解释
  Dim stringchang As Integer  '计算单词后字符串的长度
  TextBox1.Text = ""
  TextBox2.Text = ""
  FileOpen(1, Filename, OpenMode.Input)   '打开文件,相对路径
  Do While Not EOF(1)
  main = LineInput(1)
  chang = InStr(main, " ")         '查找空格的位子。
  n = Microsoft.VisualBasic.Left(main, chang - 1) '截取空格字符:单词
  Myword(i, 0) = n                    '保存新的单词
  ListBox1.Items.Add(n)
  stringchang = Len(main) - chang
  m = Trim(Microsoft.VisualBasic.Right(main, stringchang))   '剩下的字符串赋给变量值m
  Myword(i, 1) = m                    '保存中文的翻译(解释)
  i = i + 1
  Loop
  words = i
  FileClose(1)
  End Sub 

  进入ListBox1_SelectedIndexChanged事件

  Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
  Try
  TextBox1.Text = Myword(ListBox1.SelectedIndex, 0)
  TextBox2.Text = Trim(Myword(ListBox1.SelectedIndex, 1))
  Catch ex As Exception
  Exit Sub
  End Try
  End Sub 
  进入Button1_Click事件
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim i As Integer = -1   '以数组来进行起始查询
  If TextBox1.Text = "" Then
  MessageBox.Show("不能输入空字符,请重新输入")
  TextBox2.Text = ""
  TextBox1.Focus()
  Exit Sub
  Else
  For i = i + 1 To words
  If LCase(TextBox1.Text) = LCase(Myword(i, 0)) Then
  TextBox2.Text = Trim(Myword(i, 1))
  Exit Sub
  End If
  Next
  MessageBox.Show("不存在您所需要的单词,你需要添加一个新的")
  End If
  End Sub 

  进入Button2_Click事件

  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  Dim i As Integer = 0
  Dim  k As Integer
  Dim EnterWords, ch As String
  AB:     EnterWords = InputBox("请输入想要添加的单词", "添加一个新的单词")  '先输入单词
  If EnterWords = "" Then
  MessageBox.Show("必须要输入单词")
  GoTo AB
  End If
  AC:     ch = InputBox("需要您输入中文意思", "添加一个新的中文意思")         '输入中文意思
  If ch = "" Then
  MessageBox.Show("请输入中文翻译")
  GoTo AC
  End If
  Do While LCase(Myword(i, 0)) < LCase(EnterWords)
  i = i + 1
  If words = i Then                         '找完数据库再进行添加
  Myword(i, 0) = EnterWords               '把新添加的单词赋给I位置
  Myword(i, 1) = ch                    '把新添加的单词(中文意思)赋给I的位置
  words = words + 1
  FileOpen(1, Filename, OpenMode.Output)  '打开一个文件
  For i = 0 To words - 1
  PrintLine(1, Myword(i, 0) & " " & Myword(i, 1))
  Next
  ListBox1.Items.Clear()
  FileClose(1)                           '关闭文件
  ListBox1.Items.Clear()
  Form1_load(sender, e)
  MessageBox.Show("添加成功")
  Exit Sub
  End If
  Loop
  If LCase(Myword(i, 0)) = LCase(EnterWords) Then
  MessageBox.Show("词库里已经存在这个单词了")
  Exit Sub
  Else   For k = words To i + 1 Step -1
  Myword(k + 1, 0) = Myword(k, 0)
  Myword(k + 1, 1) = Myword(k, 1)
  Next k
  Myword(i, 0) = EnterWords               '把添加的单词赋给I的位置
  Myword(i, 1) = ch                    '把添加的单词(中文意思)赋给I的位置
  words = words + 1
  FileOpen(1, Filename, OpenMode.Output)  '打开一个文件
  For i = 0 To words - 1
  PrintLine(1, Myword(i, 0) & " " & Myword(i, 1))  '数组里的单词写入文本文件(TXT)
  Next
  FileClose(1)                          '文件将会关闭
  ListBox1.Items.Clear()
  Form1_load(sender, e)
  MessageBox.Show("添加成功")
  Exit Sub
  End If
  End Sub

  进入Button3_Click事件

  Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  Dim ch As String
  Dim j As Integer
  If -1 = ListBox1.SelectedIndex Then
  MsgBox("请选择单词再进行修改")
  ListBox1.Focus()
  Exit Sub
  End If
  AD:     ch = InputBox("请输入修改单词的中文意思", "修改单词", Trim(Myword(ListBox1.SelectedIndex, 1)))
  If ch = "" Then
  MessageBox.Show("不能删除以前的中文解释")
  GoTo AD
  End If
  Myword(ListBox1.SelectedIndex, 1) = ch
  FileOpen(1, Filename, OpenMode.Output),   '打开文件
  For j = 0 To words - 1
  PrintLine(1, Myword(j, 0) & " " & Myword(j, 1))
  Next
  FileClose(1)                '文件关闭
  ListBox1.Items.Clear()
  Form1_Load(sender, e)
  End Sub

  进入Button4_Click事件

  Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
  Dim i, j, k As Integer
  k = MsgBox("您确定是否删除吗?", MsgBoxStyle.YesNo)
  If 6 = k Then
  For i = ListBox1.SelectedIndex To words
  Myword(i, 0) = Myword(i + 1, 0)
  Myword(i, 1) = Myword(i + 1, 1)
  Next
  words = words - 1
  FileOpen(1, Filename, OpenMode.Output)  '打开文件
  For j = 0 To words - 1
  PrintLine(1, Myword(j, 0) & " " & Myword(j, 1))
  Next
  FileClose(1)                '文件关闭
  MsgBox("单词已经删除了")
  ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)
  ListBox1.Refresh_PB_PB_PB_PB_PB_PB_PB()
  TextBox1.Text = ""
  TextBox2.Text = ""
  Exit Sub
  Else
  Exit Sub
  End If
  End Sub

  好了现在我们运行一下程序进行测试,在如图7中我们输入包含在文本文件的一些单词进行搜索,程序能够查找出来并将其翻译成中文。

用VB.net2008编写英汉查询程序

  图片看不清楚?请点击这里查看原图(大图)。

  图 7 

  如果我们输入没有在文本文件中所存储的单词会怎样呢?这时程序会要求我们增加新的单词,以及详细的中文意思,程序会将数据自动保存到数据库中。比如我们输入China。如图8

用VB.net2008编写英汉查询程序

  图 8

用VB.net2008编写英汉查询程序 

  图 9

  输入完成后我们在文本框中输入China进行搜索。如图10

用VB.net2008编写英汉查询程序

  图 10

  好了程序运行成功,一个简单的英汉查询程序就制作完成了。当然我们如果能够和真正的数据库 Sql server和Access等联系起来构建一个英汉查询程序,将会使得程序功能更加强大。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明