procedure BlockRead(var F: File; var Buf; Count: Integer [; var AmtTransferred: Integer]);没有读取到Count个字节并且你没有指定AmtTransferred参数。如果你指定了AmtTransferred就不会有问题了。如 var AmtTransferred: Integer; begin BlockRead(F, Buf, Count, AmtTransferred);而不是: BlockRead(F, Buf, Count); end;———————————————————————————————————— 宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。 ————————————————————————————————————
可是我已经设了参数AmtTransferres阿 这样吧,我把我的代码贴出来,看看有什么问题? procedure TForm1.Button3Click(Sender: TObject); var source,target:file; numread,numwrite:integer; buffer:array[1..2048] of byte; begin AssignFile(source,edit1.text); reset(source); AssignFile(target,edit2.text); rewrite(target); repeat begin BlockRead(source,buffer,sizeof(buffer),numread); BlockWrite(target,buffer,numRead,numWrite); end; until (numread=0) or (numread<>numwrite); closefile(source); closefile(target); end;
var
AmtTransferred: Integer;
begin
BlockRead(F, Buf, Count, AmtTransferred);而不是:
BlockRead(F, Buf, Count);
end;————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
这样吧,我把我的代码贴出来,看看有什么问题?
procedure TForm1.Button3Click(Sender: TObject);
var
source,target:file;
numread,numwrite:integer;
buffer:array[1..2048] of byte;
begin
AssignFile(source,edit1.text);
reset(source);
AssignFile(target,edit2.text);
rewrite(target);
repeat
begin
BlockRead(source,buffer,sizeof(buffer),numread);
BlockWrite(target,buffer,numRead,numWrite);
end;
until (numread=0) or (numread<>numwrite);
closefile(source);
closefile(target);
end;
rewrite(target,1);