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


 

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

24743. Службы разрешения имен DNS и WINS 15.76 KB
  Для решения этой проблемы Windows XP и Windows Server 2003 обеспечивают возможность сопоставления разрешения IPадреса с именем компьютера. В состав Windows XP и Windows Server 2003 входят также две службы обеспечивающие централизованное хранение информации о соответствии имен компьютеров IPадресам и обслуживание запросов на поиск такого соответствия: служба WINS Windows Internet Name Service обеспечивающая управление именами NetBIOS. Эта служба включена для поддержки клиентских компьютеров управляемых версиями Windows 9x Me NT; ...
24744. Сетевая технология 23.5 KB
  Принципиально эти решения можно разделить на три группы: передача разных типов трафика по отдельным физическим линиям создание двух независимых сетевых инфраструктур; передача различных типов трафика по одной линии; преобразование одного вида трафика в другой с последующей транспортировкой и коммутацией.
24745. Физическая структуризация сетей. Примеры 26.36 KB
  Примеры Для построения простейшей односегментной сети достаточно иметь сетевые адаптеры и кабель подходящего типа. Повторитель улучшает электрические характеристики сигналов и их синхронность и за счет этого появляется возможность увеличивать общую длину кабеля между самыми удаленными в сети станциями. Логический сегмент построенный с использованием концентраторов Появление устройств централизующих соединения между отдельными сетевыми устройствами потенциально позволяет улучшить управляемость сети и ее эксплуатационные характеристики...
24746. Логическая структуризация сети 26 KB
  Логическая структуризация сети Несмотря на появление новых дополнительных возможностей основной функцией концентраторов остается передача пакетов по общей разделяемой среде. Коллективное использование многими компьютерами общей кабельной системы в режиме разделения времени приводит к существенному снижению производительности сети при интенсивном трафике. Общая среда перестает справляться с потоком передаваемых кадров и в сети возникает очередь компьютеров ожидающих доступа. Это явление характерно для всех технологий использующих разделяемые...
24747. Функции маршрутизатора в сети 26.5 KB
  Функции маршрутизатора в сети Маршрутиза́тор сетевое устройство пересылающее пакеты данных между различными сегментами сети и принимающее решения на основании информации о топологии сети и определённых правил заданных администратором. Нередко маршрутизатор используется для обеспечения доступа из локальной сети в глобальную сеть Интернет осуществляя функции трансляции адресов и межсетевого экрана.
24748. Функции шлюза в сети 23.5 KB
  Функции шлюза в сети Сетевой шлюз аппаратный маршрутизатор или программное обеспечение для сопряжения компьютерных сетей использующих разные протоколы например локальной и глобальной. Сетевой шлюз может быть специальным аппаратным роутером или программным обеспечением установленным на обычный сервер или персональный компьютер.
24749. Многоуровневый подход к разработке средств сетевого взаимодействия 22.5 KB
  Многоуровневый подход к разработке средств сетевого взаимодействия В компьютерных сетях идеологической основой стандартизации является многоуровневый подход к разработке средств сетевого взаимодействия. Именно на основе этого подхода была разработана стандартная семиуровневая модель взаимодействия открытых систем ставшая своего рода универсальным языком сетевых специалистов.
24750. Модель взаимодействия открытых систем (модель OSI) 32 KB
  Модель взаимодействия открытых систем модель OSI Международная организации по стандартизации придумала и создала Модель OSI модель взаимодействия открытых систем. Модель OSI Тип данных Уровень Функции Данные 7.
24751. Функции физического уровня модели OSI 33.5 KB
  Функции физического уровня модели OSI Функции всех уровней модели OSI могут быть отнесены к одной из двух групп: либо к функциям зависящим от конкретной технической реализации сети либо к функциям ориентированным на работу с приложениями. Модель OSI представляет хотя и очень важную но только одну из многих моделей коммуникаций. Модель OSI Open System Interconnection описывает взаимосвязи открытых систем. Модель OSI Тип данных Уровень Функции Данные 7.