Статус:
Offline
Реєстрація: 10.12.2008
Повідом.: 672
Реєстрація: 10.12.2008
Повідом.: 672
безумно интересно, только наврядли эти букавки научат ТС-а пользоваться буфером обменаА теперь хотелось бы попросить прощенья у ТС за них,слава богу их не так уж и много и уделить достойное внимание теме.
Прежде всего следует сказать,что файлы типа док. имеют структуру,немного напоминаемую граф. файл.В начале идет описатель поля затем непосредственно сами данные поля.Описатель поля содержит такие реквизиты как признак описателя, шрифт,размер,количество символов,позиция в странице,документе.Изменение любого из этих параметров приводит к созданию нового описателя.Последние два параметра формируются автоматически в зависимости от размера шрифта,его характера,длины символов,длины строки в выбранном стандарте,и их количества в странице.В зависимости от версий,эти параметры могут формироваться автоматически в модуле отображения документа или находиться в описателе.Но тогда требуется вводить параметр признака заглавной части поля.При открытии файла ,он переписывается в переменную область,удобную для буферообмена с ОП и далее,в случае изменения полей файла-документа,осуществляется системный вызов удаления прежней копии и создания нового файла на диске перезаписью из переменной области.Так что иногда можно восстановить прежние копии файлов,если на то место где они ранее были не записалось что либо новое.
Структура эксел наборов менее сложна и организована в виде массива структур полей с сохранением динамики связей. Файл представляет собой общую описательную часть для всего файла описательную часть каждого поля,
и за ними идет область всех данных. При отображении файла,считываются размеры и количество ячеек и впихиваются туда по порядку байты данных в зависимости от указанного формата,если описатель включает в себе расчетную формулу или алгоритм,то соответственно идет переход на соответствующую подпрограму расчета и обновление данных ячейки.Помимо всего прочего сохранение динамики структуры с помощью массива вспомогательных данных,где каждый его элемент содержит для каждой структуры данных следующую за ней структуру,позволяет легко удалять,обновлять,вставлять новые записи.