Реорганизация данных в файле произвольного доступа — КиберПедия 

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Реорганизация данных в файле произвольного доступа

2017-11-21 296
Реорганизация данных в файле произвольного доступа 0.00 из 5.00 0 оценок
Заказать работу

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

Чтобы создать индекс, вначале создается массив целых чисел, в котором каждый элемент содержит один (свой) номер записи файла произвольного доступа. Затем этот массив, позволяющий определить номер записи, используется для получения доступа к записи файла произвольного доступа. Такая организация хранения записи файла называется индексированные записи.

Например, если переменная I содержит номер требуемой записи, а переменная типа запись называется RecVar, то обычный доступ к файлу произвольного доступа обеспечивается следующим оператором Get:

 

Get #fileNum, I, RecVar

 

Если массив индексов называется theIndex(), то метод доступа изменяется таким образом:

 

Get #fileNum, theIndex(I), RecVar

 

Первоначально каждый элемент массива theIndex() содержит свой собственный номер:

 

TheIndex(1) = 1

TheIndex(2) = 2

TheIndex(3) = 3

 

Результат использования такого массива для доступа к записям файла идентичен прямому доступу к записям. Предположим, вам потребовалось упорядочить записи в алфавитном порядке, для чего необходимо поменять местами вторую и третью записи. Вы можете физически поменять местами записи на диске либо просто изменить значения в массиве индексов следующим образом:

 

TheIndex(1) = 1

TheIndex(2) = 3

TheIndex(3) = 2

 

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

Индексированные записи очень удобны для группирования и повторного использования удаленных записей. Для удаления записи переместите ее номер в конец массива индексов, а затем оставшиеся индексы переместите на один элемент вверх. Следующий индексный номер определяется на границе использованных и свободных записей. Если нужно записать новую запись, то, прежде чем ее разместить, следует проверить, имеет ли массив индексов записи, пригодные для повторного использования.

При работе с индексированными записями нужно решить, что делать с индексом. Его можно сохранить в отдельном последовательном файле или разместить в виде нескольких записей в начале файла произвольного доступа.

 

 


Создание пользовательских объектов

 

Определение пользовательского объекта

 

Программный пользовательский объект в Visual Basic привязан к модулю. Имя модуля является именем объекта, и применяется для доступа к свойствам объекта. Если объекты стандартные, то следует начинать с класса объекта, а затем, использовав порождающую функцию вроде метода ADD, можно создавать объекты этого класса. В Visual Basic класс создать нельзя: следовательно, необходимо создавать временный пользовательский объект. Однако после того, как вы его создадите, доступ к нему ничем не будет отличаться от доступа к любому другому объекту.

Для того чтобы создать пользовательский объект, начните с нового модуля. Не используйте существующий модуль, поскольку объединение обычных процедур с пользовательским объектом приведет к ошибке. Для присвоения модулю имени создаваемого пользовательского объекта воспользуйтесь директивой Edit/Sheet/Rename или дважды щелкните мышью на корешке модуля. Для объявления глобальных переменных модуля как частных используйте в заголовке модуля оператор Private, а не Dim. Таким образом, вы защитите все данные объекта от доступа внешних процедур. Единственным способом доступа к данным, сохраненным в модуле, является доступ к его свойствам и методам. Любые процедуры, входящие в состав этого модуля, могут использоваться только процедурами, входящими в его состав, и также должны быть объявлены как частные.

Кроме того, в заголовок процедуры можно поместить оператор Option Private Module, что сделает свойства и методы данного объекта доступными только из текущего проекта, но не из модулей и процедур, не входящих в данный проект.

 


Поделиться с друзьями:

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.