77973

Типизированные файлы с идентичными структурами

Лекция

Информатика, кибернетика и программирование

Типизированный файл – это файл в котором записаны идентичные структуры. Например любой файл может считать файлом байтов – т.е можно читать байт за байтом, можно перейти сразу к любому байту по его номеру, можно сразу узнать сколько байт в файле, можно заменить любой байт на другой не перезаписывая файл.

Русский

2016-09-14

30.5 KB

0 чел.

Типизированные файлы

Типизированный файл – это файл в котором записаны идентичные структуры. Например любой файл может считать файлом байтов – т.е можно читать байт за байтом, можно перейти сразу к любому байту по его номеру, можно сразу узнать сколько байт в файле, можно заменить любой байт на другой не перезаписывая файл. Теперь все это в примерах:

Объявляем файл байтов:

var f:fileof byte

` b:Byte;

Ассоциируем файловую переменную с физическим фалом:

AssignFile(f,’c:\myfile.bin’);

Теперь мы можем либо перезаписать/создать файл:

Rewrite(f);

Либо открыть существующий для чтения и записи:

Reset(f);

Обратите внимание, что функцияReset хотя и имеет такой же формат как и для текстовых.

Функции работы с файлом:

read(f,b); - прочитать 1 байт

write(f,b); - записать 1 байт

seek(f,100); – поставить текущее положение считывания/записи на сотый байт

size(f); - прочитать количество байт в файле

eof(f); - узнать не является ли байт последним

Все эти функции не работают с файлами большими 2Gb

После работы файл надо закрыть;

CloseFile(f);

Приведенные выше механизмы будут работать с любым файлом, так как любой файл можно считать файлом байтов. Теперь где это можно использовать? В принципе везде, но в подавляющем большинстве случаев это будет очень неудобно, ведь скорость считывания при чтении по байтам будет на порядки более низкой чем другими способами. Однако в некоторый случаях этот способ может быть очень полезен. Например в программе вам надо заменить 100й байт файла на другой, или прочитать 100й байт файла, например во всяких читерских программах, при взломе и т.п. Здесь такой доступ будет весьма удобен. Гораздо более интересным представляется дальнейшее развитие технологии типизированных файлов(их еще 15 лет назад называли «Файлы прямого доступа»). Представим себе, что файл состоит не из байт а из более сложных структур. Например мы не имеем некотурую иформацию в виде;

TypeMyRec=Record

Name:string[100];

Age:byte;

Membership:Boolean;

Accounts:array[1..10]of integer;

End;

Обратите внимание, что все элементы записи точно типизированы, нет ни длинных строк, ни открытых массивов, ни объектов, другими словами, заранее точно известно сколько именно байт будет заниматьпеременная этого типа. Объявим переменную этого типа;

VarMyVar:MyRec;

и файл этого типа:

Var f:File of Rec;

Теперь мы можем читать и писать сразу целую структуру, абсолютно так же как и если бы это был один байт:

AssignFile(f,’c:\MyFile.rec’);

Rewrite(f);

My Var.Name:=’Vitaly’;

My Var.Age:=33;

My Var.Membership:=True;

My Var.Accounts[1]:=12345;

My Var.Accounts[2]:=34985;

Write(f,My Var);

Closefile(f);


 

А также другие работы, которые могут Вас заинтересовать

4632. Дидактичні принципи розробки електронних підручників 137 KB
  Аналіз поняття електронний підручник. Дидактичні вимоги дозмісту та структури електронних підручників. Концепція розробки та дидактичні принципистворення ЕНП. Висновки...
4633. Розрахунок електричних мереж та вибір апаратів захисту 93.5 KB
  Розрахунок електричних мереж та вибір апаратів захисту. Вибір перерізу електричних дротів за нагріванням. Нагрівання провідників створюється проходженням по ним струму, який для однофазної мережі визначається, А: Лінія освітлення Лінія розеток ко...
4634. Розрахунок еквівалентного рівня звуку на робочому місці 69 KB
  Розрахунок еквівалентного рівня звуку на робочому місці. Нормування й контроль шуму здійснюється відповідно до ДСН 3.3.6.037-99 Санітарні норми виробничого шуму, ультразвуку та інфразвуку Характеристикою постійного шуму на робочих місцях є рівні зву...
4635. Освітлення виробничих приміщень 466 KB
  Освітлення виробничих приміщень Перевірний розрахунок природного освітлення. Для виконання перевірного розрахунку креслять необхідні креслення приміщень (при бічному освітленні - поперечний розріз і план приміщення, при горішньому - поперечний, п...
4636. Регулювання якості повітряного середовища 92.5 KB
  Регулювання якості повітряного середовища Кондиціонування повітря Кондиціонер типу спліт-система має два блока, один розташовується усередині приміщення, другій зовні на стіні будівлі. У першому блоці розташовані компресор, вентилятор, в...
4637. Охорона праці. Конспект лекцій. Нещасні випадки та види інструктажів 214.5 KB
  Лекція Основні визначення в галузі охорони праці. Трудова діяльність – це джерело розвитку суспільства, створення матеріальних, культурних і духовних цінностей, передумова існування як кожної окремої людини, так і людства в цілому....
4638. Дослідження машини постійного струму 61 KB
  Дослідження машини постійного струму Мета роботи. Ознайомитися з конструкцією та паспортом машини. Оволодіти способами передпускової розмітки виводів машини постійного струму та розрахунками за паспортними даними. Обладнання та прилади. Машина...
4639. Исследование характеристик диодов и стабилитронов 55 KB
  Исследование характеристик диодов и стабилитронов Цель работы. Научиться составлять и рассчитывать схемы включения полупроводниковых приборов, экспериментальным путем получить их вольтамперные характеристики. Подготовка к лабораторной работе...
4640. Фармакология, курс лекций 971.42 KB
  Педиатрическая фармакология – изучает особенности действия лекарств на детский организм. Перинатальная фармакология – изучает действие ЛС на плод (от 24 нед. до родов) и организм новорожденного (в первые 4 недели жизни). Гериатрическая фармакология – изучает особенности действия и применения ЛС у лиц пожилого и старческого возраста. Фармокогенетика – изучает роль генетических факторов в чувствительности организма к лекарствам.