截取部分文件的VB编程技巧
2008-04-09 04:41:41来源:互联网 阅读 ()
1)因VB的OPEN语句的二进制方式可以读写有任意结构的文件,把源文件和截取的目标文件作为二进制方式读出和写入;
2)GET语句语法为: GET#<源文件号>,<起始位置>,<变量>利用GET语句提供的起始位置可以对源文件读的位置进行控制;
3)把每次读取字节的长度放于字节变量数组中,以提高程序速度;
4)若需截取的目标文件较大,应把源文件需读的内容分成一个个读写块(注:目标文件仍只有一个),每一读写块内容放入字节数组中,读写块未完部分须对字节数组的上下标进行重新设置,以便读写。
源程序如下:
Dim TargetFileLength, StartLength As Long
'目标文件长度及在源文件中的开始长度
Dim SourceFileName, TargetFileName As String
'源文件全路径名和目标文件全路径名
Dim ReadPos, WritePos As Long '读写位置
Dim DSX() As Byte
'为字节数组,用来存储读写内容
Dim ReadFileNo, WriteFileNo As Integer
'读写文件号
Const Unit = 100000
'读写块的大小
StartLength = InputBox("输入目标文件在源文件中的开始长度")
'此值也可以通过其它方式获取
TargetFileLength = InputBox("输入目标文件长度")
'1)同上;
'2)或由目标文件在源文件中的结束长度转换而来;
'3)该值在读写过程中是个变数
SourceFileName = InputBox("输入源文件名")
TargetFileName = InputBox("输入目标文件名")
ReadFileNo = FreeFile
Open SourceFileName For Binary Access Read As ReadFileNo
'打开欲截取的源文件名
WriteFileNo = FreeFile
Open TargetFileName For Binary Access Write As WriteFileNo
'欲打开的目标文件名
ReadPos = 1: WritePos = 1
ReadPos = ReadPos StartLength
'给读写位置赋初值
'以下部分读出写入读写块的整数部分
ReDim DSX(Unit) As Byte
'设置存储字节数组的大小
Do While TargetFileLength > Unit
'TargetFileLength为变数,反映读写过程中还剩的字节数
Get #ReadFileNo, ReadPos, DSX()
Put #WriteFileNo, WritePos, DSX()
ReadPos = ReadPos Unit
WritePos = WritePos Unit
TargetFileLength = TargetFileLength - Unit
Loop
'以下读写除读写块倍数后的剩余部分
ReDim DSX(TargetFileLength) As Byte
Get #ReadFileNo, ReadPos, DSX()
Put #WriteFileNo, WritePos, DSX()
Close WriteFileNo, ReadFileNo
说明:1、对源文件和目标文件较大时,对Unit 的取值比较考究。Unit的取值视机器配置而定,笔者的机型为6X86PR200+,取Unit=100,000,000 到5,000,000,000;依笔者之见,在时间接近的情况下,为了减少资源的占用应尽量取下限。
2、本程序稍作改写,可作为过程被其它VB程序的调用。
3、本程序的测试环境为Visual Basic5.0中文版,Windows95系统下通过。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:利用磁盘的序列号进行软件加密
下一篇:利用Delphi扩充VB函数
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash