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


 

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

42136. Особливості написання власних назв 55.5 KB
  З великої букви пишуться ремарки які вказуюсь на ставлення слухачів до якоїсь особи інші ремарки стоять після закінченого речення: Мова категорія Загальнонародна вона характеризує відмінності народів а не суспільних класів Сучасна українська літературна мова. З великої букви також пишеться перше слово рубрики тексту якщо кожна рубрика закінчується крапкою; перше слово прямої мови після двокрапок; початкове слово постанови резолюції протоколу; після двокрапки за словами Слухали Ухвалили в протоколі. З великої букви...
42138. Лаборатоные работы в пакете EViews 463.5 KB
  Появится окно группы в котором можно создавать и работать с рядами рис. Создание просмотр и редактирование ряда данных Ряды данных можно создавать двумя способами. Создание пустого ряда в группе. В этом случае для создания ряда необходимо в открытой группе щелчком мыши активировать в самой верхней строке obs первую пустую ячейку и ввести название ряда затем нажать Enter и OK рис.
42139. Создание HTML-страницы для ввода данных 31.5 KB
  Теория В целом для создания HTMLкода чаще всего используются следующие теги: Теги начала и окончания HTMLстраницы html html Теги начала и окончания заголовка HTMLстраницы hed hed Теги начала и окончания названия HTMLстраницы title title Тег для установки кодировки HTMLстраницы met httpequiv= ContentType content= text html; chrset=windows1251 Теги начала и окончания основного тела HTMLстраницы body body Теги начала и окончания абзаца параграфа в теле HTMLстраницы p p Тег пропуска строки br Теги начала и...
42140. ПОДГОТОВКА И АНАЛИЗ ДАННЫХ 444 KB
  Очень часто происходит ситуация когда анализ данных проводимый между этапом сбора данных и собственно эконометрическим моделированием позволяет сократить количество лишней работы связанной с фактическим выбором модели и анализом технической информации во время моделирования. Предварительный анализ данных можно условно разделить на три этапа: графический анализ данных; фильтрация очистка рядов данных; анализ выборочных характеристик рассматриваемых рядов. Эконометрическое исследование проводится как минимум для двух рядов...