收藏 分销(赏)

截取部分文件的VB编程技巧.doc

上传人:仙人****88 文档编号:7907908 上传时间:2025-01-26 格式:DOC 页数:2 大小:23KB 下载积分:10 金币
下载 相关 举报
截取部分文件的VB编程技巧.doc_第1页
第1页 / 共2页
截取部分文件的VB编程技巧.doc_第2页
第2页 / 共2页
本文档共2页,全文阅读请下载到手机保存,查看更方便
资源描述
截取部分文件的VB编程技巧 ·Dennis·截取文件的一部分方法很多,有的用分割工具软件,有的ARJ等压缩软件实现。本文介绍用编程方法来实现。在VB环境中,完全可以利用VB自身提供的命令和函数,提取、分割任何文件,定位准确、速度快。思路及重点如下: 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程序的调用。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服