DelphiBasics
FileMode
Variable
Defines how Reset opens a binary file System unit
var FileMode : Integer;
Description
The FileMode variable defines the mode in which the Reset procedure opens a typed or untyped binary file.
 
The Reset procedure opens a non-text file for read, write, or read+write access as defined by FileMode :
 
fmOpenRead  = 0 = Read only
fmOpenWrite  = 1 = Write only
fmOpenReadWrite  = 2 = Read and write (default)

 
Use Seek to move the current file position. This is useful for selective updating or for appending to the end of the file.
Notes
Warning : the default is Read and write. Opening a read-only file (such as on a CD Rom) would therefore fail.
Related commands
AssignFileAssigns a file handle to a binary or text file
ResetOpen a text file for reading, or binary file for read/write
 Download this web site as a Windows program.




 
Example code : Demonstrate all 3 file access modes
var
  myWord, myWord1, myWord2, myWord3 : Word;
  myFile : File of Word;

begin
  // Try to open the Test.cus binary file in write only mode
  AssignFile(myFile, 'Test.cus');
  FileMode := fmOpenWrite;
  ReSet(myFile);

  // Write a few lines of Word data to the file
  myWord1 := 123;
  myWord2 := 456;
  myWord3 := 789;
  Write(myFile, myWord1, myWord2, myWord3);

  // Close the file
  CloseFile(myFile);

  // Reopen the file in read only mode
  FileMode := fmOpenRead;
  Reset(myFile);

  // Display the file contents
  ShowMessage('File contents at the start');
  while not Eof(myFile) do
  begin
    Read(myFile, myWord);
    ShowMessage(IntToStr(myWord));
  end;

  // Close the file again
  CloseFile(myFile);

  // Reopen the file in read+write mode
  FileMode := fmOpenReadWrite;
  Reset(myFile);

  // Read one Word of data, then overwrite the next
  Read(myFile, myWord);
  myWord := 9876;
  Write(myFile, myWord);

  // Close the file
  CloseFile(myFile);

  // Reopen the file in read only mode
  FileMode := fmOpenRead;
  Reset(myFile);

  // Display the file contents
  ShowMessage('Updated file contents');
  while not Eof(myFile) do
  begin
    Read(myFile, myWord);
    ShowMessage(IntToStr(myWord));
  end;

  // Close the file for the last time
  CloseFile(myFile);
end;
Show full unit code
  File contents at the start
  123
  456
  789
  Updated file contents
  123
  9876
  789
 
Delphi Programming © Neil Moffatt . All rights reserved.  |  Home Page