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);


 

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

79580. PULKOVO - RUSSIAS MAIN OBSERVATORY 175.09 KB
  Two gret observtories. Greenwich nd Pulkovo occupy leding plce mong the observtories of the world. Pulkovo is situted in hilly re some kilometres from St. You cnt get to Pulkovo by trin: when the rilwy ws being built the stronomers specilly sked tht it should be kepi severl kilometres wy so tht there should be no vibrtion to ffect the sensitive instruments.
79581. FUNDAMENTALS OF THEORY AND PRACTICE OF TRANSLATION 1.44 MB
  Тhe educational material is grouped in topical arrangements and staffed within the case modules’ framework representing the set of submodules enabling one to familiarize the trainees with the theoretical information and to consolidate it in slideshow illustrations, assignments, exercises.
79582. Эмпирическое исследование особенности развития мыслительных процессов детей младшего школьного возраста с задержкой психического развития 2.43 MB
  Целью эмпирического исследования в данной выпускной квалификационной работе является анализ особенностей мышления у детей с задержкой психического развития младшего школьного возраста, и разработать рекомендации для общеобразовательных учреждений о коррекционной работе с детьми с задержкой психического развития.
79583. Розробка ЛОМ для Пологівської філії «Укртелеком» 1.6 MB
  Задачею дипломного проекту є розробка локально-обчислюваної мережі для будинку цеху ТП №13 міста Пологи Запорізької філії ВАТ «Укртелеком». Організаційно-штатна структура підприємства наведена в рисунку 1.1. Локально-обчислювана мережа розробляється на вже існуючих комп’ютерах.
79584. Управление оборотными активами компании на примере ОАО «Кулебакского завода металлических конструкций» 248.26 KB
  Целью работы является: оценка и анализ управления оборотными активами предприятия. Результаты анализа дают ответ на вопрос, каковы важнейшие способы улучшения управления оборотными активами предприятия в конкретный период его деятельности.
79586. Представления студенческой молодежи о брачном партнере (социологический анализ на примере студентов вузов г. Москвы) 3.64 MB
  Среди множества негативных аспектов кризиса брачно-семейных отношений исследователи отмечают: процессы обнищания семьи на духовном уровне, падение качества семейного воспитания; увеличение численности неполных семей, одиноких мужчин и женщин, нивелирование ценности самого института семьи и тому подобное.
79588. Значимые аспекты журналистского расследования 369 KB
  Актуальность темы. Сам жанр журналистского расследования предполагает всестороннее и подробное исследование некой мало изученной, закрытой или тщательно скрываемой темы, в процессе работы над которой приходится преодолевать нежелание определенных структур предоставить интересующую вас информацию.