- •Практическая работа 10 Работа с файлами.
- •1 Текстовые файлы
- •1.1 Объявление
- •1.2 Связывание переменной с файлом
- •1.3 Открытие файла
- •1.4 Запись в файл. Чтение из файла
- •1.4.1 Текстовый файл и компонент Memo
- •1.5 Закрытие файла
- •1.6 Пример работы с текстовым файлом
- •2 Нетипизированные файлы
- •2.1 Объявление
- •2.2 Связывание переменной с файлом
- •2.3 Открытие файла
- •2.4 Запись в файл. Чтение из файла
- •2.5 Закрытие файла
- •2.6 Дополнительные функции и процедуры
- •2.7 Пример работы с нетипизированным файлом
- •3 Типизированные файлы
- •3.1 Объявление
- •3.2 Связывание переменной с файлом
- •3.3 Открытие файла
- •3.4 Работа с файлом
- •3.5 Закрытие файла
- •3.6 Пример работы с типизированным файлом
- •4 Ini файлы
- •4.1 Объявление
- •4.2 Создание/подключение
- •4.3 Чтение-запись
- •Ini.WriteInteger('Position', 't', Form1.Top);
- •4.4 Закрытие файла
- •4.5 Пример работы с ini-файлом.
- •5 TFileStream
- •5.1Объявление и инициализация переменной.
- •5.2 Работа с файлом
- •5.3 Закрытие
- •5.4 Пример
4.4 Закрытие файла
После того, как мы сохранили параметры в ini- файл, его необходимо закрыть:
ini.Free;
4.5 Пример работы с ini-файлом.
Пример демонстрирует способ сохранение параметров формы.
Ниже приведен код обработчика события закрытия формы OnClose, предназначенный для записи параметров в файл.
var
ini : TIniFile; //объявляем переменную типа inifile
begin
ini := TInifile.Create(ExtractFilePath(Application.ExeName)+'my.ini');
//сохраняем позицию окна:
ini.WriteInteger('Position', 'L', Form1.Left);
ini.WriteInteger('Position', 'T', Form1.Top);
//сохраняем размеры окна:
ini.WriteInteger('Size', 'W', Form1.Width);
ini.WriteInteger('Size', 'H', Form1.Height);
//закрываем файл:
ini.Free;
Ниже приведен код обработчика события создания формы, предназначенный для чтения параметров из файла
procedure TForm1.FormCreate(Sender: TObject);
var
ini : TIniFile; //объявляем переменную типа inifile
begin
//теперь создаем ее:
ini := TInifile.Create(ExtractFilePath(Application.ExeName)+'my.ini');
//применяем позицию окна:
Form1.Left := ini.ReadInteger('Position', 'L', 329);
Form1.Top := ini.ReadInteger('Position', 'T', 261);
//читаем размеры окна:
Form1.Width := ini.ReadInteger('Size', 'W', 384);
Form1.Height := ini.ReadInteger('Size', 'H', 312);
//закрываем файл:
ini.Free;
end;
5 TFileStream
Класс TFileStream позволяет создать поток для работы с файлами. При этом поток работает с файлом без учета типа хранящихся в нем данных
5.1Объявление и инициализация переменной.
Первым делом необходимо создать переменную типа TFileStream:
var
f : TFileStream;
Таким образом, мы объявили переменную типа объект TFileStream, и в дальнейшем можем работать с этой переменной, как с объектом. То есть, указывать имя этой переменной, а после точки выбирать свойства, методы и события этого объекта. Однако объявить переменную мало, требуется еще проинициализировать ее.
f := TFileStream.Create(параметры);
У метода Create объекта TFileStream может быть три параметра, причем третий параметр необязателен, его можно не указывать. Разберемся с этими параметрами.
Имя файла – этот параметр – простая строка, которая может содержать только имя файла, или полное имя файла, включая и адрес.
Режим открытия. Здесь можно указать один из следующих параметров:
fmCreate – Создать файл с указанным в первом параметре именем. Если файл уже существует, он откроется в режиме для записи.
fmOpenRead – Открыть файл только для чтения. Если файл не существует, произойдет ошибка, поэтому прежде требуется выполнить проверку на существование файла. Запись в файл в этом режиме невозможна.
fmOpenWrite – Открыть файл для записи. При этом текущее содержимое файла уничтожается, и файл перезаписывается.
fmOpenReadWrite – Открыть файл для редактирования, то есть, и чтения, и записи.
Права, с которыми будет открыт файл. Этот параметр необязателен, его можно не указывать. Он имеет следующие возможные значения:
fmShareCompat – Другие приложения тоже имеют право работать с открытым файлом.
fmShareExclusive – Другие приложения не смогут открыть файл.
fmShareDenyWrite – Другие приложения смогут открыть файл только для чтения, записать в него данные они не смогут.
fmShareDenyRead – Другие приложения смогут открыть файл только для записи, для чтения они не смогут его открыть.
fmShareDenyNone – не мешать другим приложениям работать с файлом.
Пример:
f := TFileStream.Create('C:\MyFile.txt', fmOpenReadWrite, fmShareExclusive);