VB 古诗欣赏系统

2023-10-09 17:20
文章标签 系统 vb 古诗 欣赏

本文主要是介绍VB 古诗欣赏系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Option ExplicitPrivate Type Poetry    '自定义古诗类型 5句内容 和 图片NeiRong(0 To 4) As String * 50TuPian As String * 50
End TypeDim Poetrys() As Poetry    '声明古诗数组为  自定义类型
Dim Current As Integer    '当前第几首Private Sub Command1_Click()Current = 1Timer1.Interval = Val(Text1)Timer1.Enabled = TrueCommand1.Enabled = FalseCommand2.Enabled = FalseCommand3.Enabled = FalseCommand4.Enabled = False
End SubPrivate Sub Command2_Click()If Current > 1 Then Current = Current - 1    '上一首Timer1.Interval = Val(Text1)Timer1.Enabled = TrueCommand1.Enabled = FalseCommand2.Enabled = FalseCommand3.Enabled = FalseCommand4.Enabled = False
End SubPrivate Sub Command3_Click()If Current < UBound(Poetrys) Then Current = Current + 1    '上一首Timer1.Interval = Val(Text1)Timer1.Enabled = TrueCommand1.Enabled = FalseCommand2.Enabled = FalseCommand3.Enabled = FalseCommand4.Enabled = False
End SubPrivate Sub Command4_Click()Current = UBound(Poetrys)Timer1.Interval = Val(Text1)Timer1.Enabled = TrueCommand1.Enabled = FalseCommand2.Enabled = FalseCommand3.Enabled = FalseCommand4.Enabled = False
End SubPrivate Sub Command5_Click()If Len(Text2) <> 0 And Len(Text3) <> 0 Then    '如果古诗有内容,并且配图有内容则添加记录Dim tmptmp = Split(Trim(Text2), vbCrLf)    '通过vbcrlf打散字符串text2的内容,Trim函数去掉字符串左右的空白If UBound(tmp) <> 4 ThenMsgBox "古诗的内容必须是5行"Exit SubEnd IfList1.AddItem tmp(0)    '将text2的第一行内容显示在列表框中ReDim Preserve Poetrys(UBound(Poetrys) + 1)    '扩大古诗数组元素个数增1,并保持前面数据不丢失,所以要用 Preserve来修饰Poetrys(UBound(Poetrys)).NeiRong(0) = tmp(0)Poetrys(UBound(Poetrys)).NeiRong(1) = tmp(1)Poetrys(UBound(Poetrys)).NeiRong(2) = tmp(2)Poetrys(UBound(Poetrys)).NeiRong(3) = tmp(3)Poetrys(UBound(Poetrys)).NeiRong(4) = tmp(4)Poetrys(UBound(Poetrys)).TuPian = Text3fileWrite    ' 记录写入文件Text2 = ""Text3 = ""ElseMsgBox "古诗内容为空或配图为空,请检查"End If
End SubPrivate Sub Command6_Click()If Len(Text2) <> 0 And Len(Text3) <> 0 Then    '如果古诗有内容,并且配图有内容则添加记录Dim tmptmp = Split(Trim(Text2), vbCrLf)    '通过vbcrlf打散字符串text2的内容,Trim函数去掉字符串左右的空白If UBound(tmp) <> 4 ThenMsgBox "古诗的内容必须是5行"Exit SubEnd IfIf List1.ListIndex > -1 ThenList1.List(List1.ListIndex) = tmp(0)    '将text2的第一行内容替换列表框所选择的内容Poetrys(List1.ListIndex + 1).NeiRong(0) = tmp(0)Poetrys(List1.ListIndex + 1).NeiRong(1) = tmp(1)Poetrys(List1.ListIndex + 1).NeiRong(2) = tmp(2)Poetrys(List1.ListIndex + 1).NeiRong(3) = tmp(3)Poetrys(List1.ListIndex + 1).NeiRong(4) = tmp(4)Poetrys(List1.ListIndex + 1).TuPian = Text3fileWrite    ' 记录写入文件Text2 = ""Text3 = ""End IfElseMsgBox "古诗内容为空或配图为空,请检查"End If
End SubPrivate Sub Command7_Click()Dim i As IntegerIf List1.ListIndex > -1 ThenFor i = List1.ListIndex + 1 To UBound(Poetrys) - 1    '通过循环让i+1位置的内容覆盖i位置的内容,实现信息在数组中向前移Poetrys(i) = Poetrys(i + 1)NextReDim Preserve Poetrys(UBound(Poetrys) - 1)    '将数组最后一个元素删除fileWrite    ' 记录写入文件List1.RemoveItem List1.ListIndex    '将列表框所选择的内容移除Text2 = ""Text3 = ""End If
End SubPrivate Sub Form_Load()'Frame1显示,Frame2不可见Frame1.Visible = TrueFrame2.Visible = FalseMe.Width = 8400    '设置窗体的宽度ReDim Poetrys(0)    '程序刚加载时 古诗数组初始元素0个Current = 0fileRead    '导入信息If UBound(Poetrys) > 0 Then '如果导入文件有信息则处理以下内容Current = 1Timer1.Interval = 200Timer1.Enabled = TrueEnd If
End SubPrivate Sub List1_Click()    '将列表框对应的古诗信息显示在文本框2和3中Dim s(4) As StringDim s1 As StringDim c As StringDim i As IntegerDim j  As Integer'以下代码剔除无用字符For i = 0 To 4s(i) = ""For j = 1 To 50c = Mid(Poetrys(List1.ListIndex + 1).NeiRong(i), j, 1)If Asc(c) = 0 Then Exit Fors(i) = s(i) & cNexts(i) = Trim(s(i))Nexts1 = s(0) & vbCrLfs1 = s1 & s(1) & vbCrLfs1 = s1 & s(2) & vbCrLfs1 = s1 & s(3) & vbCrLfs1 = s1 & s(4)Text2 = s1    '显示古诗Text3 = Trim(Poetrys(List1.ListIndex + 1).TuPian)     '显示图片名称End SubPrivate Sub Timer1_Timer()Static n As IntegerDim i As IntegerDim s(5) As StringDim j As IntegerLabel1 = ""If n = 0 ThenPicture1.Picture = LoadPicture(App.Path & "\" & Trim(Poetrys(Current).TuPian))End IfFor i = 0 To n'以下代码剔除无用字符s(i) = ""For j = 1 To 50Dim c As Stringc = Mid(Poetrys(Current).NeiRong(i), j, 1)If Asc(c) = 0 Then Exit Fors(i) = s(i) & cNextLabel1 = Label1 & Trim(s(i)) & vbCrLfNextn = n + 1    '代表要显示几行If n = 5 Then    '如果5行显示完毕,则停止时钟,并且n从新置0Timer1.Enabled = FalseCommand1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = Truen = 0End If
End SubPrivate Sub wh_Click()Frame2.Visible = TrueFrame1.Visible = FalseFrame2.Left = 140Frame2.Top = 300
End SubPrivate Sub xs_Click()Frame1.Visible = TrueFrame2.Visible = FalseFrame1.Left = 140Frame1.Top = 300
End SubPrivate Sub fileRead()    '功能将文件信息导入程序Dim i As IntegerDim Poetry As PoetryOpen App.Path & "\Poetrys.txt" For Random As #1 Len = Len(Poetry)    '打开随机文件方式操作Do While Not EOF(1)Get #1, , PoetryIf Asc(Trim(Poetry.NeiRong(0))) <> 0 ThenReDim Preserve Poetrys(UBound(Poetrys) + 1)Poetrys(UBound(Poetrys)) = PoetryList1.AddItem Poetrys(UBound(Poetrys)).NeiRong(0)End IfLoopClose #1
End SubPrivate Sub fileWrite()    '功能将信息写文件Dim i As IntegerIf Dir(App.Path & "\Poetrys.txt") <> "" Then Kill App.Path & "\Poetrys.txt"Open App.Path & "\Poetrys.txt" For Random As #1 Len = Len(Poetrys(0))    '打开随机文件方式操作For i = 1 To UBound(Poetrys)Put #1, , Poetrys(i)NextClose #1
End Sub

 

这篇关于VB 古诗欣赏系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/174368

相关文章

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻