Delphi справочник - Форум программистов - Навигация  
 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  


Основы Delphi
FileMode
Переменная
Определяет, как Reset будет открывать двоичный файл System unit
  var FileMode : Integer;
Описание
Переменная FileMode определяет режим, в котором процедура Reset открывает типизированный или нетипизированный файл.

Процедура Reset открывает нетекстовый файл в том режиме какой указан в FileMode - чтения, записи, или чтения+записи :

fmOpenRead = 0 = Только для чтения
fmOpenWrite = 1 = Только для записи
fmOpenReadWrite = 2 = Чтение и запись (значение по умолчанию)

Используйте Seek для перемещения текущей позиции файла. Это полезно для выборочного изменения или для добавления в конец файла.
Примечания
Предупреждение: значение по умолчанию Чтение и Запись. Поэтому открытие файла только для чтения (такиз как на CD) потерпело бы неудачу.
Похожие команды
AssignFile  Связывает дескриптор файла с бинарным или текстовым файлом

Reset  Открывает текстовый файл для чтения, или двоичный файл для чтения/записи

 
Пример кода : Демонстрация всех 3-х режимов доступа к файлам
var
  myWord, myWord1, myWord2, myWord3 : Word;
  myFile : File of Word;

begin
  // Попытка открыть бинарный файл Test.cus в режиме только для записи
  AssignFile(myFile, 'Test.cus');
  FileMode := fmOpenWrite;
  ReSet(myFile);

  // Запись нескольких строк Word данных в файл
  myWord1 := 123;
  myWord2 := 456;
  myWord3 := 789;
  Write(myFile, myWord1, myWord2, myWord3);

  // Закрытие файла
  CloseFile(myFile);

  // Повторное открытие файла в режиме только для чтения
  FileMode := fmOpenRead;
  Reset(myFile);

  // Показ содержимого файла
  ShowMessage('Содержимое файла в начале');
  while not Eof(myFile) do
  begin
    Read(myFile, myWord);
    ShowMessage(IntToStr(myWord));
  end;

  // Повторное закрытие файла
  CloseFile(myFile);

  // Повторное открытие файла в режиме чтение/запись
  FileMode := fmOpenReadWrite;
  Reset(myFile);

  // Чтение одного Word данного, затем запись поверх следующего
  Read(myFile, myWord);
  myWord := 9876;
  Write(myFile, myWord);

  // Закрытие файла
  CloseFile(myFile);

  // Повторное открытие файла в режиме только для чтения
  FileMode := fmOpenRead;
  Reset(myFile);

  // Показ содержимого файла
  ShowMessage('Обновлённое содержимое файла');
  while not Eof(myFile) do
  begin
    Read(myFile, myWord);
    ShowMessage(IntToStr(myWord));
  end;

  // Close the file for the last time
  CloseFile(myFile);
end;

Содержимое файла в начале
123
456
789
Обновлённое содержимое файла
123
9876
789
 



© Форум Delphi   |  Блог программистов   |  Создание и продвижение сайтов - "Веб сателлит"  |  Ссылки   |  Английская версия