Name

Reset Procedure

Syntax

procedure Reset(var F: TextFile);
procedure Reset(var F: File);
procedure Reset(var F: File; RecordSize: Integer);

Description

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.

Errors

  • Reset reports I/O error 102 if you fail to call AssignFile prior to calling Reset.

  • If Reset cannot open the file, it reports the Windows error code as an I/O error.

Tips and Tricks

  • 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.

Example

// 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;

See Also

Append Procedure, CloseFile Procedure, FileMode Variable, IOResult Function, Rewrite Procedure
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset