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


 

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

46462. Февральская революция 1917 года в России 16.52 KB
  не решила экономических политических и классовых противоречий в стране то она явилась предпосылкой февральской революции 1917 года. Причинами февральской революции 1917 года явились антивоенные настроения тяжелое положение рабочих и крестьян политическое бесправие спад авторитета самодержавной власти и ее неспособность провести реформы. Основные события февральской революции произошли стремительно. 26 февраля 1917 года стало началом февральской революции.
46463. Метод капитализации при оценке стоимости недвижимости 16.56 KB
  При использовании метода капитализации доходов в стоимость недвижимости преобразуется доход за один временной период а при использовании метода дисконтированных денежных потоков доход от ее предполагаемого использования за ряд прогнозных лет а также выручка от перепродажи объекта недвижимости в конце прогнозного периода. является стоимостью всего объекта недвижимости. Базовая формула расчета имеет следующий вид: или где С стоимость объекта недвижимости ден.
46464. Очереди (Queue) 16.57 KB
  Очереди, как следует из название, используют принцип first in first out (FIFO). То есть, тот, кого мы первым запихнули в очередь, первым из нее и выйдет (хотя в реальной жизни не всегда так....)Реализуются очереди также просто.
46465. Октябрьская революции 1917 года 16.57 KB
  Поэтому попытка анализа политической ситуации событий расстановки и действий политических сил времени революции факторов приведших к братоубийственной войне стала темой моей работы. Революция без контрреволюции не бывает и не может быть . Причем как можно более объективно чтобы получить по возможности наиболее полное представление о причинах вызвавших именно такой ход революции. Ход Октябрьской революции 1917 года К осени 1917 года политическое и социальноэкономическое обострение ситуации достигло своего пика.
46467. Выготский Л.С. Проблема речи и мышления в учении Ж. Пиаже 16.59 KB
  Пиаже Центральное звено позволяющее свести к единству все отдельные особенности детского мышления заключается с точки зрения основной теории Пиаже в эгоцентризме детского мышления. Пиаже определяет эгоцентрическую мысль как переходную промежуточную форму мышления располагающуюся с генетической функциональной и структурной точки зрения между артистической мыслью и направленным разумным мышлением. Корни эгоцентризма Пиаже видит в двух обстоятельствах. Пиаже избегает выражения бессознательное рассуждение считая его весьма скользким и...
46468. Система технического обслуживания и ремонта техники. Основные положения. Термины и определения 16.61 KB
  Система ППР предусматривает следующие основные положения: 1 ремонт оборудования выполняется через планируемые промежутки времени называемые межремонтными периодами; 2 после планового капитального ремонта характеристика оборудования приближается к паспортным данным нового оборудования; 3 в течение ремонтного цикла оборудование в строгой очередности проходит все плановые ремонты предусмотренные системой; 4 кроме плановых ремонтов выполняется техническое обслуживание оборудования; 5 чередование периодичность и объем...
46470. Базовые системные оппозиции языка: язык-речь, структура-функция, форма- содержание 16.67 KB
  Базовые системные оппозиции языка: языкречь структурафункция форма содержание. Они и являются базовыми системными оппозициями языка. Языкречь. Язык система знаков и грамматическая система обязательная для всех членов языкового коллектива.