网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
实现高速文件拷贝
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

program FastCopy;
{$A+,B-,D-,E+,F+,G+,I-,L-,N+,P-,Q-,R-,S-,T-,V-,X-,Y-}
{$M 16384,$10000}

const
  MaxBufCnt = 1000;
type
  BufPtr = ^BufRec;
  BufRec = array[0..8190] of byte;


var
  InFile, OutFile : file; {IF is In File, OF is OutFile}
  Buffer : array[1..MaxBufCnt] of BufPtr;
  BufLen : array[1..MaxBufCnt] of word;
  BufSiz : array[1..MaxBufCnt] of word;
  BufCnt : byte;
  Total : longint;
  SizeofFile : longint;
  IndexR,IndexW : byte;
  BytesWritten : word;
  BR, BW : longint;
  Timer1,Timer2 : longint;
  Ticks : ^Longint;

begin
Ticks := Ptr(Seg0040, $006c);
if paramcount < 2 then begin
writeln(''Usage:'', paramstr(0), ''

'');
halt;
end;
assign(InFile, paramstr(1));
assign(OutFile, paramstr(2));
writeln;
writeln(''Copying '', paramstr(1), '' to '', paramstr(2));
reset(InFile, 1);
rewrite(OutFile, 1);
BufCnt := 0;
SizeOfFile := filesize(InFile);
Total := 0;
while (MaxAvail>8192) and (BufCnt
BufLen[IndexW] then begin
    writeln;
    writeln(''Error writing to file Disk might be full'');
    Halt;
   end;
  end;
end;
Close(InFile);
Close(OutFile);
Timer2 := ticks^;
writeln;
writeln(''Copy took '', Timer2-Timer1, '' timer ticks to complete'');
writeln(''Throughput is '', SizeOfFile div (Timer2-Timer1), '' bytes/tick'');
writeln(''or if you prefer '', (SizeOfFile div (Timer2-Timer1)) * 18.2:8:0, ''
bytes/second''); for IndexR := 1 to BufCnt do
  freemem(Buffer[IndexR], BufSiz[IndexR]);
writeln;
writeln(''Copy complete'');
end.

  • 下一篇资讯: 显示DLL可导出的函数
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号