- •Практическая работа 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 Пример
3.4 Работа с файлом
Для работы с файлом используются следующие функции:
Read(f,i); - прочитать элемент в переменную i.
Write(f,1); - записать элемент из переменной i в файл а.
Seek(f,100); - устанавливает указатель в файле на нужную компоненту, в данном случае поставить текущее положение считывания/записи на 101-элемент 9элементы считаются с нуля.
Size(f); - прочитать количество байт в файле.
Eof(f); - узнать не является ли элемент последним, функция возвращает значение true, если достигнута последняя запись (элемент).
3.5 Закрытие файла
После выполнения операций чтения-записи файл необходимо закрыть. Для этого можно воспользоваться процедурой СloseFile:
CloseFile(f);
3.6 Пример работы с типизированным файлом
Создайте обработчик события OnCreate для формы содержащий следующий код:
type
TStudent=record
name:string[255];
oz:integer;
end;
var
Student:TStudent;
File:File of TStudent;
begin
AssignFile(F,'test.dat');
Rewrite(F);
Student.name:='Andrey';
Student.oz:=10;
Seek(F,0);
Write(F,Student);
CloseFile(F);
end;
4 Ini файлы
У INI – файлов есть много преимуществ. С ними работать просто и удобно, они поддерживают три типа данных – String, Integer и Boolean. Кроме того, если бы мы сохраняли настройки в простой текстовый файл, то при изменении одной из настроек требовалось бы перезаписывать весь файл, а ini-файл позволяет перезаписать только этот параметр.
4.1 Объявление
Первым делом, если вы собираетесь работать с ini-файлами, в секцию uses, сразу под словом interface, требуется добавить модуль inifiles, в нем описаны все данные для работы с ini-файлами.
Создайте раздел var и объявите там переменную типа ini-файл:
var
ini : TIniFile; //объявляем переменную типа inifile
4.2 Создание/подключение
Далее мы должны создать файл, если его не существовало, или открыть его, если он уже есть:
ini := TInifile.Create(ExtractFilePath(Application.ExeName)+'my.ini');
Обратите внимание, что мы создаем файл в той же директории, откуда запущена программа. Если бы мы указали просто ini := TInifile.Create('my.ini'); то файл был бы создан в директории Windows.
ini := TInifile.Create('my.ini');
4.3 Чтение-запись
У ini-файла есть три процедуры для записи данных различных типов. WriteInteger, WriteString и WriteBool. Соответственно, эти функции записывают целое число, строку и логический тип. У этих функций есть по 3 параметра. Первый – это раздел ini – файла. В самом файле он выходит в квадратных скобках. Раздел вы можете назвать как угодно. Вторым параметром является название сохраняемого параметра. Третьим параметром функции является его значение. Например:
Ini.WriteInteger('Position', 't', Form1.Top);
Соответственно, мы имеем три процедуры считывания параметров из ini-файла: ReadInteger, ReadString и ReadBool. Данные процедуры имеют схожие параметры с процедурами записи. Здесь интересен третий параметр в функциях записи. Казалось бы, значения нам не нужны, мы берем их из указанных разделов. Но третий параметр обязателен, в нем указывается значение "по умолчанию".