[Back to COPYMOVE SWAG index] [Back to Main SWAG index] [Original]
{
Note : Functions beginning with "__" come from the ECO Library - Kerry.
FLOOR A.C. NAAIJKENS
The Norton-like bar along with the copying won't compile
{$I-}
function __copyfil(show : boolean; x1, x2, y, f, b : byte;
fs : longint; src, targ : string) : byte;
{
return codes:
0 successful
1 source and target the same
2 cannot open source
3 unable to create target
4 error during copy
5 cannot allocate buffer
}
const
bufsize = 16384;
type
fbuf = array[1..bufsize] of char;
fbf = ^fbuf;
var
source,
target : file;
bread,
bwrite : word;
filebuf : ^fbf;
tr : longint;
nr : real;
begin
if memavail > bufsize then
new(filebuf)
else
begin
__copyfil := 5;
exit
end;
if src = targ then
begin
__copyfil := 1;
exit
end;
assign(source, src);
reset(source,1);
if ioresult <> 0 then
begin
__copyfil := 2;
exit
end;
assign(target, targ);
rewrite(target,1);
if ioresult <> 0 then
begin
__copyfil := 3;
exit
end;
if show then
__write(x1 + 2 , y, f, b, __rep(x2 - x1 - 3, '°'));
tr := 0;
repeat
blockread(source, filebuf^, bufsize, bread);
tr := tr + bread;
nr := tr / fs;
nr := nr * (x2 - x1 - 3);
if show then
__write(x1 + 2, y, f, b, __rep(trunc(nr), 'Û'));
blockwrite(target, filebuf^, bread, bwrite);
until (bread = 0) or (bread <> bwrite);
if show then
__write(x1 + 2, y, f, b, __rep((x2 - x1 - 3), 'Û'));
close(source);
close(target);
if bread <> bwrite then
__copyfil := 4
else
__copyfil := 0;
end;
{$I-}
[Back to COPYMOVE SWAG index] [Back to Main SWAG index] [Original]