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
圖2
接下來我們需要創建一個文本文件(.txt),用這個文本文件來存儲單詞,作為我們的數據庫。我們需要輸入一些英文單詞和中文意思(你可以任意的輸入一些內容),(文本文件名字命名為:引用英漢詞典.txt)引用英漢詞典.txt這個命名非常重要一定要正確。如圖3
圖3
記住保存在程序根目錄下。
下一步選擇<解決方案資源管理器>-選擇顯示所有文件-選中<bin文件夾>-右鍵選擇<包括在項目中>如圖4
圖4
選中了後,我們就把bin文件夾包括在項目中了,這時bin文件夾變了顏色,我們需要再次右鍵選擇bin文件夾-<添加>---<現有項>如圖5
圖 5
這時我們需要將剛才建立的文本文件(引用英漢詞典.txt)添加進去,注意:我們一定要將所建立的文本文件放在程序根目錄下如\bin\Debug\引用英漢詞典.txt
後面我們會在代碼中調用這個文件作為我們的數據庫,在進行程序調試中必定要用到的。如圖6
圖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 ' 讀取相應的單詞
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()
TextBox1.Text = ""
TextBox2.Text = ""
Exit Sub
Else
Exit Sub
End If
End Sub
好了現在我們運行一下程序進行測試,在如圖7中我們輸入包含在文本文件的一些單詞進行搜索,程序能夠查找出來並將其翻譯成中文。
圖 7
如果我們輸入沒有在文本文件中所存儲的單 詞會怎樣呢?這時程序會要求我們增加新的單詞,以及詳細的中文意思,程序會將數據自動保存到數 據庫中。比如我們輸入China。如圖8
圖 8
圖 9
輸入完成後我們在文本框中輸入China進行搜索。如圖10
圖 10
好了程序運行成功,一個簡單的英漢查詢程序就制作完成了。當然我們如果能夠和真正的數據庫Sql server和Access等聯系起來構建一個英漢查詢程序,將會使得程序功能更加強大。