转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
截取部分文件的VB编程技巧         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:723 更新时间:2009/4/23 14:58:50
  截取文件的一部分方法很多,有的用分割工具软件,有的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程序的调用。

   3、本程序的测试环境为Visual Basic5.0中文版,Windows95系统下通过。
  


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台