当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > VB 二进制块读写类模块应用实例,包括一个文件拷贝和一个文件二进制比较的例子。

ASP.NET
ASP.NET实现数据图表a
ASP.NET实现数据图表1
Kbuilder.cs GIVE ME K
WebForm1.aspx K LINE YISHI GIEVE ME
ASP.NET实现数据图表b
today study 2005.03.03
ActiveX 组件复习笔记.1
Direct3D学习笔记(二)我们这里可以编写一个完全意义上的Direct3D程序了。
HttpContext类包含了个别HTTP请求的所有特定HTTP信息。
实现自定义分页(如:改变传统datagrid的分页显示、通过A-Z的字母来分页等)、选择...
关于Format字符串和Xml文件的解析(粗略)
wrox asp.net 2 beta preview study section 3
整合重复代码,生成自定义的列(组件)整合重复代码,生成自定义的datagrid(组件...
递归法提升密码穷举算法性能
如何用UltraEdit编译C#源程序
添加删除、更新按钮的提示确认信息,以及DATAGRID的添加、插入、更新、删除操作。
WebBrowser应用
My Composite in C#
DBForm的设计来源以及主要构想
.net中交易处理的解决方案

ASP.NET 中的 VB 二进制块读写类模块应用实例,包括一个文件拷贝和一个文件二进制比较的例子。


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 98 ::
收藏到网摘: n/a


文件拷贝实例:(Text1存放源文件位置,Text2存放目标文件位置)------------------------------------------------------------------------
Private Sub Command3_Click()Const BUFFER_SIZE = 40960 * 2 '规定缓冲区大小Dim nActual As LongDim aBuf(0 To BUFFER_SIZE - 1) As Byte '分配缓冲区Dim tmr As Single '计时变量Dim lFileLen As Long '纪录文件长度Dim iFileNum As Integer '记录文件号Dim k As Long
tmr = Timer
If Not m_cFileRead.OpenBinary(Text1.Text) Then MsgBox "打开文件失败!" & Text1.TextIf Not m_cFileWrite.OpenBinary(Text2.Text) Then MsgBox "打开文件失败!" & Text2.Text
'记下文件长度和打开文件所用的文件号,是为了优化性能。lFileLen = m_cFileRead.FileLengthiFileNum = m_cFileRead.FileNumber
k = 0Do k = k + 1 If k = 10 Then k = 0 'pb1是进度条控件。 pb1.Value = 100 * (Seek(iFileNum) / lFileLen) '显示百分比 DoEvents End If '读块,传给它缓冲区指针和期望读取的字节数,返回实际读取的字节数, nActual = m_cFileRead.ReadBlock(VarPtr(aBuf(0)), BUFFER_SIZE) '写块,传给它缓冲区指针和期望写入的字节数。 m_cFileWrite.WriteBlock VarPtr(aBuf(0)), nActualLoop Until nActual < BUFFER_SIZE '当实际读取字节数小于缓冲区大小的时候,就不需要再读啦,已读完啦

m_cFileRead.CloseFile '关文件m_cFileWrite.CloseFile
MsgBox "OK! total time:" & Timer - tmrEnd Sub
---------------------------------------------------------------------------------------------------------------------------------------
二进制文件比较实例(Text1存放第一个文件的位置,Text2存放第二个文件的位置)----------------------------
Private Sub Command2_Click()
Const BUFFER_SIZE As Long = 4096 * 2 '规定缓冲区大小Dim cfRead1 As New CFileReadDim cfread2 As New CFileReadDim aBuf1(0 To BUFFER_SIZE - 1) As Byte '分配缓冲区Dim aBuf2(0 To BUFFER_SIZE - 1) As ByteDim nActual As LongDim i As Long, lCurPos As LongDim tmr As SingleDim k As Long
tmr = Timer
If Not cfRead1.OpenBinary(Text1.Text) Then MsgBox "open file failed:" & Text1.TextIf Not cfread2.OpenBinary(Text2.Text) Then MsgBox "open file failed:" & Text2.Text
If cfRead1.FileLength <> cfread2.FileLength Then MsgBox "文件不一样长"
lCurPos = 1 '当前待比较字节的位置,虚拟位置,不同于文件的读写指针。k = 0Do '读块,传给它缓冲区指针和期望读取的字节数,返回实际读取的字节数, nActual = cfRead1.ReadBlock(VarPtr(aBuf1(0)), BUFFER_SIZE) '读第2个文件的数据块 nActual = cfread2.ReadBlock(VarPtr(aBuf2(0)), BUFFER_SIZE) For i = 0 To nActual - 1 '比较缓冲区 If aBuf1(i) <> aBuf2(i) Then MsgBox "不同,位置:" & lCurPos: Exit Do lCurPos = lCurPos + 1 '移到下一个待比较字节的位置 Next i k = k + 1 If k = 100 Then k = 0 Cls Print Timer - tmr, " ", (Seek(cfRead1.FileNumber) / 1024) / (Timer - tmr) & " KB/s" End IfLoop Until nActual < BUFFER_SIZE
cfRead1.CloseFile '关文件cfread2.CloseFile
MsgBox "OK! " & Timer - tmr
End Sub---------------------------------------------------------------------------------------------------------------------------------------