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
 



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