(一)编程原理;
一般来说VCD的实际影音文件放在光盘根目录下“MPEGAV”子目录下,文件名为music001.dat或者依次排序,通过对该文件的截取操作,使用户可以保存任何精彩的影碟片断,据作者测算,每十兆字节大约可以播放一分钟,这样,用户可以使用该软件截取任意时间段内的vcd,不过要使用“超级解霸”5.02以上版本播放。
由于影音文件体积非常大,普通vcd2.0格式60分钟的影音文件长度在600兆以上,因此采用单通道定义二进制数组的办法不仅可靠性差,而且截取较长片断时势必难以实现.笔者采用了双通道技术,即通过定义较小的固定二进制数组,一个通道用来读取,另一个通道用来写入的方法来实现.这其中涉及了复杂的二进制定位技术。
(二)编程实例;
(第一步)启动vb6中文版建立一个标准exe工程,将窗体命名为“form1",单击“工程"菜单项目,选择“部件",在部件对话框的“控件"栏目中选择“MICROSOFT WINDOWS COMMON CONTROLS 6.0",确认在它前面的复选框中有一个黑色的对号,单击“确认",添加对该控件的引用.添加6个标签框,4个文本框(由上直下依次排列),3个按钮,一个进度条命名为ba1,一个公用对话框控件命名为cog1,拖动控件到适当位置,界面设计完成后大致如图1所示。其中, “影音文件名称:"标签对应text1,“影音文件长度:"标签对应text2,“截取起始位置:”标签对应text3,“截取长度:”标签对应text4,“截取后文件保存路径:”标签对应text5.设置Label6的BorderStyle = 1,“浏览(*.dat)”按钮对应Command1 ,“保存为(*.dat)"按钮对应Command2 ,“开始截取"按钮对应Command3 。
双击窗体添加以下代码:
Private Sub Command1_Click() 注释:浏览选择文件
Cog1.FileName = “" 注释:清空过期文件名称
Cog1.Filter =“vcd影碟文件(*.dat)|*.dat" 注释:只保留影碟文件
Cog1.ShowOpen 注释:执行打开操作
If Cog1.FileName <> "" Then 注释:如果放弃就忽略操作
Text1.Text = Cog1.FileName 注释:得到被截取文件名
Label6.Caption = CInt(FileLen(Text1.Text) / 2 ^ 20)
注释:将文件长度转化为兆字节
End If
End Sub
Private Sub Command2_Click() 注释:保存为
If Text1.Text = “" Then
注释:如果未选定影音文件就拒绝操作,显示提示信息
MsgBox “请首先选择一个被截取的文件!", vbOKOnly + vbExclamation
Exit Sub 注释:中断操作
End If
Cog1.FileName = “"
Cog1.ShowSave
If Cog1.FileName <> “" Then
Text4.Text = Cog1.FileName 注释:保存路径名称
End If
End Sub
Private Sub Command3_Click() 注释:开始截取操作
Dim err_descr As String
If Text1.Text = “" Or Text2.Text = “" Or Text3.Text = “" Or Text4.Text = “" Then
注释:再次验证参数正确性
MsgBox “请依次输入正确的信息,不要有所遗漏!", vbOKOnly + vbExclamation
Exit Sub 注释:如果参数不完整忽略操作
End If
If Not jieQU(Text1.Text, Text2.Text, Text3.Text, Text4.Text) Then
注释:执行截取失败
MsgBox “红箭提示信息:" & err_descr, vbOKOnly + vbExclamation
注释:返回错误信息
Else 注释:执行截取成功
MsgBox“红箭提示信息:文件截取操作已经圆满完成!", vbOKOnly + vbExclamation
End If
End Sub
Private Sub Form_Load()
Me.Caption = App.Title
Me.Left = (Screen.Width - Me.Width) / 2
Me.Top = (Screen.Height - Me.Height) / 2 注释:窗体居中
End Sub
Private Sub Form_Unload(Cancel As Integer)
End 注释:结束工程
End Sub
(第二步)添加一个模块,输入以下代码:
Option Explicit 注释:变量检查
Type FileSection
Bytes() As Byte 注释:定义关键数组
End Type
Type SectionedFile
Files() As FileSection 注释:定义辅助数组
End Type
Public Function jieQU(Yname As String, Kshi As Long, CHang As Long, Bname As String) As Boolean 注释:定义截取操作函数
Form1.MousePointer = 11 注释:设置鼠标指针为漏斗型
jieQU = True 注释:函数成功标志
Dim mlp As Integer, i As Integer, zhi As Long, fnum As Integer, fnum1 As Integer
Dim shuZU As Long, myfile As SectionedFile
shuZU = 2000000 注释:定义内存固定数组,长度为2兆
Kshi = Kshi * 2 ^ 20
注释:转换文件指针单位为字节
CHang = CHang * 2 ^ 20
注释:转换文件长度单位为字节
If CHang < shuZU Then
注释:如果截取长度太小
MsgBox “截取的文件长度不能小于2兆字节!", vbOKOnly + vbExclamation
jieQU = False
注释:返回操作失败标志,退出操作
Exit Function
End If
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关文章
热点关注
- 在asp.net中为Web用户控件
- .NET3.5和VS2008中的ASP.N
- 对.NET Framework 反射的
- Asp.net Ajax 1.0 异步回
- ASP.NET2.0的控件状态和视
- 通过避免下列10个常见ASP.
- 中国地区三级联动下拉菜单
- 解析Asp.net中资源本地化
- 一个无刷新效果定时自动更
- 动态创建MSSQL数据库表存
- asp.net用url重写URLReWri
- 使用ASP.NET Atlas编写显
- 关于ASP.NET调用JavaScrip
- 使用ASP.Net Forms模式实
- asp.net ajax 使用updatep
- 优化ASP.NET应用程序性能
- ASP.NET中动态修改web.con
- ASP.NET中利用Crystal Rep
- asp.net如何生成图片验证
- 基于ASP.NET的Web动态控件
- 分享个极好的无刷新二级联
- asp.net 2.0 上传控件的使
- 创建ASP.NET监视服务器进
- Asp.net把UTF-8编码转换为
- 开发基于ASP.NET WebServi
- asp.net结合html,javascr
- asp.net 2.0下嵌套masterp
- 正则表达式提取数字
- 最新版FreeTextBox(版本3.
- 获取本机上配置好的Oracle
- ASP.Net全局变量的设置和
- VB几个有用的函数
- 用代码画折线图/柱形图/
- FCKeditor2.2 ASP.NET2.0
- 客户端回调实现gridView无
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD




