在这里用“【”来标识年级;用“《”来标识唐诗的名称;用“(”来标识作者;什么符号也没有标识内容。也正因为如此,所以,我们在后台程序编写的时候,必须要去掉每一行的空格,以免读取内容时出错。
添加模块Module,在模块中定义TangPoetry这个类及其属性,其属性包括标题、作者、年级、内容以及唐诗的总数量,并定义一个二文表,保存唐诗数据。本文来自辣)文!论(文@网,
毕业论文 www.751com.cn 加7位QQ324'9114找源文
主要程序代码集中在Form1中,针对按钮编写Click事件,因为增加了11个相同的按钮,所以VB自动创建了控件数组来存放这些按钮,我们可以通过index这个属性,来确定选择的是哪个按钮,并将按钮上的名称,也就是年级,赋给Form2 “显示唐诗名称”窗体中的Lable标签,在Lable中显示唐诗的名称。利用for循环查找唐诗,如果唐诗的年级这个属性=按钮上的年级,那么就把这首唐诗的题目添加到Form2的ListBox中,并显示出来。
首先要读入数据源,即我们上一节数据源的选择中所提到的文本文档部分。给Form1编写窗体载入事件End Sub当窗体载入时调用ReadTangText过程:
Private Sub Form_Load()
Call a
Call ReadTangText
End Sub
Private Sub ReadTangText()
Dim line As String
Dim CurInt As Integer
CurInt = 0
Open App.Path & "\小学唐诗选读.txt" For Input As #1
编写ReadTangText过程,读取全部唐诗到内存中,定义CurInt为唐诗下标,并初始化唐诗下标为0。添加Open App.Path & "\小学唐诗选读.txt" For Input As #1语句,载入数据源文件,也就是保存唐诗的文本文件,确保程序的数据来源。
编写窗体unload事件,Form1关闭时,触发事件,关闭Form2。
然后给按钮编写Click事件,添加Private Sub Command1_Click(Index As Integer)语句,因为增加了12个相同的按钮,所以VB自动创建了控件数组来存放这些按钮,我们可以通过index这个属性,来确定选择的是哪个按钮。将按钮上的名称,也就是年级,赋给窗体2,也就是“显示唐诗名称”这个窗体中的Label标签具体实现语句为Form2.Label1.Caption = Command1(Index).Caption。在这里还要添加From2中listbox的刷新语句Form2.List1.Clear,因为如果不刷新,会出现每点击一次button按钮,listbox中就会添加一次唐诗题目的情况。
在Do Until循环中,嵌套select case多重选择语句,来判断数据源是否符合选项条件。在这里不得不提到Trim()函数的作用,line = Trim(line)。函数的作用是去除空格,这一点是程序实现的很重要的一个细节。另外还有一个很重要的函数,就是Left(a,M)函数,主要代码是Select Case Left(line,1),它的作用是取出Line这个字符串中左数第一个字符,这个Select Case的语句的作用是根据line这个字符串作数第一个的字符,判断这一行是标题还是年级还是作者,或者是内容什么的。这两个函数的应用,决定了系统是否能够查找成功。
Select Case语句判断年级、标题、作者、内容的具体语句如下:
Select Case Left(line, 1)
Case "【"
recordofTangPoetry(0).Grade = Mid$(line, 2, Len(line) - 2)
Case "《"
CurInt = CurInt + 1
recordofTangPoetry(0).TotalNum = CurInt
ReDim Preserve recordofTangPoetry(CurInt)
recordofTangPoetry(CurInt).Grade= recordofTangPoetry(0).Grade
recordofTangPoetry(CurInt).Title = Mid$(line, 2, Len(line) - 2)
Case "("
recordofTangPoetry(CurInt).Author = Mid$(line, 2, Len(line) - 2)
Case Else
If line = vbCrLf Then
Else
recordofTangPoetry(CurInt).Content=recordofTangPoetry(CurInt).Content & line & vbCrLf
End If
End Select
这一部分是整个系统的核心内容,系统主要实现的查询搜索功能,都是由这一部分代码体现的。这里利用Left(line, 1)函数取出每一行中左数第一个字符,如果是本文来自辣)文!论(文@网,
毕业论文 www.751com.cn 加7位QQ324'9114找源文【,说明这一行显示的是年级,是“《”则说明这一行是标题,遇到“(”则表示这一行是作者,若既不是不是题目、作者也不是年级的话,就只可能是内容或者空行。再做一个判断,如果该行取到的是换行符,那么不做任何操作。否则,说明这一行是唐诗内容,就将这一行的内容和之前的唐诗题目、作者连接起来。而Mid$(line, 2, Len(line) - 2)函数的作用是从line这个字符串中读取从第2个到第len(line)-2个字符,将读取的年级赋给中间变量。CurInt是定义的表示唐诗下标的量,若遇到标题,则说明唐诗的数量增加了,故而CurInt = CurInt + 1。因为每查找一首唐诗,唐诗的总数量就要增加,相应的,存放唐诗的数组就要扩充,所以添加ReDim Preserve recordofTangPoetry(CurInt)语句,扩充数组并保存数据。
在Form2中,编写unload事件,当Form2关闭时,关闭Form3。在这里,要创建一个 List1_DblClick() 事件,也就是List的双击事件,当用户对着listbox(列表框)双击鼠标时,同时触发dblclick(双击事件)和click(单击事件),只是我们希望只有在双击列表框的内容的时候,才触发事件,所以这里用了dblclick事件。利用For循环,将唐诗的标题、作者、内容全部都显示在Form3的TextBox中
上一页 [1] [2] [3] [4]
VB唐诗选读系统设计论文 第4页下载如图片无法显示或论文不完整,请联系qq752018766