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 |