Описание |
Переменная 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
|
|