Reset Procedure
procedure Reset(var F: TextFile); procedure Reset(var F: File); procedure Reset(var F: File; RecordSize: Integer);
The Reset
procedure opens an existing file. If the
file is a TextFile
, Reset
opens
the file for read-only access. If the file is a binary file, the file
is opened to allow read and write function calls, but the
FileMode
variable dictates how the operating
system opens the file. Reset
is not a real
procedure.
If the file is a typed binary file (e.g., file
of
something
), use the
second form of Reset
, that is, pass the file
variable only. If the file is an untyped binary file (just
file
), you can optionally supply the second
argument to tell Delphi the record size. If you omit the record size,
Delphi uses 128
bytes.
If the file is already open, it is closed first.
By default, Reset
opens a binary file to allow
reading and writing. Set the FileMode
variable to
before calling Reset
to open a file for read-only
access.
To use Reset
to append to a binary file, open the
file, seek to the end of the file, and then begin
writing.
When using an untyped file, it is usually simplest to supply a record
size of 1 when calling Reset
, and then call
BlockRead
and BlockWrite
to
read and write as much data as you want. Alternatively, create a type
for File
of
Byte
, so you don’t need to set the record
size in Reset
.
// Copy a file.
procedure CopyFile(const Source, Dest: string);
const
BufferSize = 8192;
var
SourceFile, DestFile: File of Byte;
Buffer: PByte;
Count: LongInt;
begin
AssignFile(SourceFile, Source);
AssignFile(DestFile, Dest);
Buffer := nil;
try
GetMem(Buffer, BufferSize);
FileMode := 0;
Reset(SourceFile);
Rewrite(DestFile);
repeat
BlockRead(SourceFile, Buffer^, BufferSize, Count);
BlockWrite(DestFile, Buffer^, Count);
until Count = 0;
finally
CloseFile(SourceFile);
CloseFile(DestFile);
FreeMem(Buffer);
end;
end;