Здравствуйте, в этой статье хотел бы поговорить о работе с типизированными файлами, я уже публиковал статьи, где применял их, ну так, чтобы для более понять темы по созданию тестов, по сохранению и считыванию данных TStringGrid. Давайте сначала подумаю, а что такое вообще типизированные файлы, да правильно — это те файлы, которые имеют определенный тип и мы изначально знаем их структуру. Для работы с типизированными файлами применяются следующие функции и процедуры

  1. AssignFile(F,’test.dat’) — связывает файловую переменную с именем файла, параметры передаваемые — файловая переменная и путь к файлу
  2. Rewrite(F) — создает файл, параметры — файловая переменная, необязательные — режим создания
  3. Reset(F) — открывает файл, то есть подрузумевается в том, что мы как бы ставим файл в режим открытия, чтения (в общем если файл имеется на диске или еще каком-то носителе и нам из него необходимо прочитать информацию, то тут без этой функции не обойтись).
  4. Seek (F,n) — устанавливает указатель в файле на нужную компоненту, параметры — файловая переменная, номер компоненты на которую необходимо переместиться.
  5. Write(F,Buf) — записывает компоненту в файл, параметры — файловая переменная, запись с данными
  6. Read(F,Buf) — считывает компоненту из файла, на которой стоит указатель (по умолчанию на первой), параметры — файловая переменная и запись, в которую необходимо считать данные
  7. EOF(F) — определяет достигнут ли конец файла (указатель конца файла), параметры — файловая переменная
  8. Truncate(F) — удаляет компоненту в файле, параметры — файловая переменная, перед этим необходимо установить указатель на компоненту,  которую необходимо удалить
  9. FileSize(F) — определяет количество компонентов в файле, параметры — файловая переменная, возвращает целочисленный тип
  10. CloseFile(F) — закрывает файл, параметры — файловая переменная. Это как бы необязательная функция, но просто принято так, если открыл, то закрой его за собой.

Вот основные функции по работе с типизированными файлами. Многие из низ подходят для работы с текстовыми файлами. С нетипизированными файлами мы познакомимся в другой статье.

На последок хотел бы показать как организовать запись в типизированный файл

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;

Считывание точно также, только не заполняем нашу структуру, а вместо Write используем Read.

Хочу заметить, что сейчас действительно очень тяжело найти качественную обувь по низким ценам. Я нашел такое место — это торговый комплекс Центр Города. Там огромный выбор обуви и Вы наверняка найдете себе подходящую. Данные торговый центр находится во многих городах, подробнее Вы сможете узнать на сайте http://centergoroda.com

Метки: ,




К записи “Работа с типизированными файлами в Delphi” оставлено комментариев: 14.

  1. adiodas:

    Спасибо! То что искал

  2. adiodas:

    Скажите пожалуйста, а как мне вытащить из типизированного файла записей конкретную запись, но не по номеру ее, а по названию какого-либо поля?

  3. Andrey53:

    2adiodas, только если проходиться циклом и искать нужную

  4. Ghost del vonte:

    Как в файловом потоке (TFileStream), в котором находятся несколько файлов, поставить указатель на последний файл? (не в конец файла)

  5. Andrey53:

    2Ghost del vonte
    Вам необходимо сохранять заголовки файла и устанавливать c помощью Seek размер этого файла (FileSize)

    • Ghost del vonte:

      Дело в том, что в данном потоке, в самом конце я хотел разместить файл (TWriter), в котором и описаны имена, размеры, позиции всех файлов, которые находятся в потоке, мне надо при загрузке этого «архива» поставить указатель на последний этот «информационный» файл, чтобы можно было работать с этим архивом…

  6. nikro:

    В Truncate(F,n) нет параметра n

  7. DeadUser:

    Сделал все, как в примере, при попытке записи в файл вылетает ошибка, через IORusult поймал — invalid file handle. Где копать?

  8. bcook:

    в строке
    File:File of TStudent;

    наверное Вы имели ввиду это:
    F : File of TStudent;

  9. Александр:

    () : Ожидалось ‘.’
    У меня вот такая ошибка в ABC Pascal

  10. poli-smen:

    >8. Truncate(F) — удаляет компоненту в файле, параметры — файловая переменная, перед этим необходимо установить указатель на компоненту, которую необходимо удалить
    Truncate удаляет не только ту запись на котором сейчас установлен указатель, но и все последующие вплоть до конца файла. Другими словами Truncate уменьшает размер файла до текущей позиции. Например если в файле было 100 записей и текущая позиция указывает на десятую запись, то после Truncate размер файла сократится до 10 записей — останутся записи с номерами от 0 до 9, а записи начиная с 10-й будут уничтожены.

Оставить комментарий на Andrey

Вы можете использовать следующие теги:

*