ПредишенСледващото

Файловете сложността и тайнственост vordovsky за дълго време са били легенди. Той е бил известен, че този формат е много объркана, а освен това все още и напълно тайна, така че около половината от там полетата само да гадае.


Трябва да призная, че съм се интересувал от тези файлове, но на първата страница на описанието преместя и не можеше. Въпреки това, незатворен гещалт остава.

Какво мога да кажа? Не е да си припомним старата банален анекдот: добре, ужасно. Ами, просто ужасно, но това не е ужас, ужас, ужас.

Слава Богу, че аз разгледа файловете в Perl, а не на autocode В. Високото ниво на езика и много готови библиотеки (например, за да прочетете различни страници код) - дар от Бога.

Така че работим заедно, взе една седмица, и най-трудно да се разбере вътрешния формат. Разбира се, разбирането на това не е съвсем пълна, защото целта ми беше да се премахне от един документ с текст без форматиране, но това е, което правя добре.

И така, как са подредени vordovskie файлове?

Да започнем с това, че не е vordovskie файлове и универсален контейнер, в който документите са опаковани правилно. В такъв контейнер пълнени всички Office файлове, както и, може би нещо друго.

По принцип формат OLE съхранение е достатъчно интелигентен и не произвежда впечатление за нещо напълно идиотски. Но ... той не се нуждаеше. В действителност, това е нещо, FAT16 типа на файловата система, въведена в отделен файл. Това не е нещо, което изстрелването на оръжието на врабчета, а унищожаването на повечето от тези врабчета ядрени торпеда. В документа, в рамките на който се намира на няколко файлове, които не се нуждаят от файлова система, която е не по-малко от по времето на файловата система DOS.

По този начин, от Фондацията гледат файлове (както ги наричат ​​полезност на Unix файл) започват с титлата. Заглавието ще се даде на място в първата стотица записва (таблица за разпределение на файловете, в общ език - PAF) на FAT. PAF, където най-естественото, е много подобен на това, което може да се намери на дискетите за DOS. Другите вписвания се РФ в отделни сектори, свързани свързан списък. Допълнителна сектор са само в големи (> 7MB) файл.

Според FAT етикета / РФ може да събира съдържанието на който и да е вътрешен файл (в терминологията на MS се нарича поток, но това обърква само въпроса), ако знаете, че тя започва с блок. Основни блокове на различни структури, написани естествено заглавието. След това масата се изтегля всички сектори на веригата, който казва, че съдържанието на тази псевдо.

По-специално, CDF има корен, който е физически реплицира върху купчината сектор. Това е подарък каталог, отново, много напомня на старата на DOS. Въпреки това, за ефективността (или покаже), тя се прави не само линеен списък, балансирано двоично дърво. Това означава, че без загуба на ефективност на търсене можете да пишете десетки хиляди отделни записи. Защо го направи във файл, в който записите обикновено са около пет, добре, понякога двадесет, добре, не повече от сто парчета (презентация с огромен брой изображения) - известен само в Редмънд. Между другото, имената на файловете в директорията, се съхраняват в UTF16 - също, за всеки случай.

Каталогът може да се определи като се започне сектора на всеки файл и да използвате РФ то по цялата верига за настаняване, дръпнете.

Но това не е всичко.

Тъй като не е малък размер на блока (обикновено 512 байта, също могат да бъдат посочени като 4096), а след това за съхранение на малки псевдо теоретично възможно да се загубят много място. Следователно, има отделен склад, разделен на отворите 64 байта. Съхранение отново изготвен по веригата на FAT.

За да определите кои файлове са собственост на някои капси, има отделна PAF плоча или по-скоро, miniFAT.

Така че, за да стигнем до vordovsky документ, направете следното:

1. Прочетете заглавието на CDF
2. Изтегляне на FAT памет - таблица за разпределение на файловете, събра си сектори на веригата.
3. Качи плоча MiniFAT възвърна РФ верига
4. Качване на охлюви съхранение, събиране на нея РФ верига
5. Качване в главната директория, събирането й РФ верига
6. Демонтирайте каталога и да го превърнете в нещо за четене
7. Намерете вписване в WordDocument директория
8. Ако това е малък файл, а след това го събират с помощта на miniTRF хранилище за охлюви.
9. Ако е голяма, дръпнете кола от сектора на веригата на FAT.

Всяка стъпка по себе си не е особено сложно, но взети заедно, те причиняват само недоумение. Защо е толкова трудно? Защо не поставяйте глава след един обикновен онлайн каталог, а след него непрекъснато, един след друг, за да запишете на вътрешните файлове?

Единственото нещо, което може да се предположи - всичко това се прави с цел да бъде в състояние да се опрем на под-файлове, без да докосвате началото на основния файл. Трябва да се отбележи, че, от една страна, не е много в експлоатация на търсенето, тъй като всички програми обикновено са писмени документи, от началото до края с едно минаване. Единственото изключение е, MS Word и то само в прословутия режим бързо спаси, проклети потребители. И на второ място, дори и в тези условия все още не работи не пипай началото на основния файл, тъй като е необходимо да се актуализира каталози, TRF и заглавията.

WordDocument

CDF формат за цялата си чудовище най-малко логично и не е много сложно (в сравнение с останалата част от съдържанието на vordovsky на документа). Неговото описание покрива само около двадесет страници - уф, в сравнение с 300 страници Уорд формат.

Форматът на документа е трудно дори да се обадя формат е много повече, за да се побере на определението за историята на рока. Представете си камък скала, на която е отпечатана и петдесет милиона години история на планетата. Тук мезозойската слой, тук Cenozoic, че отпечатъка на крилото на птеродактил, а на върха на вече терциерни седименти. Приблизително същите външен вид и вътре документ.

Само погледнете в заглавието, който заема почти една трета файл. Заглавия три. Първо там е малка, в който половината от записите зейнали дупки «запазени» или «Не се използва». По-рано през мезозоя, там е ясно нещо лъже, но след това е бил изхвърлен на бунище на историята. Има и версия на записаната програма, която в кода, изглежда, е извършена огромна ключ / случай.

След това идва втората титла, която се състои от шестнадесет битови думи. Тя няма нищо полезно. В началото на своята определения размер ясно по такъв начин, че там ще бъдат депозирани черупки малко по-надолу по пътя.

После идва третата заглавието, този път по-модерен, на дълги думи (32 бита). Той nemeryannom дължина, в началото, също показва броя на записите с оглед на по-нататъшното разширяване, и е в основата на списък от къде да намерите най-различни таблици и файлови парчета - чифт старт / размер. самите таблици, между другото, не са тук, но в отделна псевдо CDF нарича 0Table или 1Table (вариации са възможни).

Животът всъщност е много по-сложно. След като в досиетата, че е наистина само текста, но с течение на времето натискът изградена потребители и предлагането на пазара на различни "особености". Под тях се отделни потоци - обикновен ската в края, при колонтитулите, при всяко текстово поле (друго извращение - под формата на текст, но не и текстът не Присвояване напълно ясна.).

В началото на тези потоци са посочени в специални места за титлата, но заглавието на самия корен показва общата дължина - не на текста, и на текста, както и всички тези изкривявания. Това е първата причина, поради сключването на много комунални услуги падне надписи като Page 1.

Теоретично, този комплекс формат активира само ако fComplex специален флаг намира в заглавната си част. Но ... Тук, на това следващата ", но" прекалено много конвертори са пробити.

В наше време в документите, ние добавихме възможността да пиша в Unicode. В този случай, че има проблем (както за мен, пресилено), но тъй като данните са получени точно два пъти по-дълго. Тъй като софтуерът е разработен от американците, които в сърцето му не вярват в съществуването на други азбуки, и тайно вярват, че всякакви странни писма са само в дисертации за Древна Гърция, и там да се случи само от време на време, първото нещо, което идва на ум - да се разделят на чисти символи ASCII от мръсна от Unicode. Първо пиши байт на характер, а вторият - като това ще стане.

Ако ние считаме, че това много маса Ogryzkov също се извършва, а дори и повече място във файла заемат различни двоични дървета и таблети сектор вериги от CDF формат, а след това спаси размера на текста на героите Unicode не улови въображението дори на древногръцкия теза. За файлове на велик и силен език и да каже нищо. Бихте сложи всичко в UTF-16 и не страдат. Добре се архивира време поток толкова печати, жаби.

След героични усилия в четене на текста, само по себе си, странно, не е голяма работа. Обикновен текст (коригирани за кодиране), някои кодове са под лентата за пространство играе допълнителна роля. Например, 0h9 показва, както се очаква, раздели, 0hA - страница крайни 0h7 - края на клетка маса и т.н. Единственият финес, свързани с полетата. съдържанието на полето се нарича началото на 0h13, в края на областта - 0h15, името и параметрите на поле е отделено символ 0h14 от това, което в действителност, може да се види в текста на потребителя. Но ... Втората част може да бъде вложено поле, че много програми не вземат под внимание. В резултат на това, текстът остава отпадъци като INCLUDEPICTURE или PAGEREF *.

Въпреки това, има една незначителна пакости. Някои символи може да означава нещо съвсем различно, като текущата дата. За да се разбере тази проста символ или не, е необходимо да се демонтира характер свойствата на таблицата, които са по-долу. Признавам, аз просто изрежете всички герои с кода по-долу клавиша за интервал, който не е напълно достатъчно, но това е евтин, бърз и практичен.

Откъсне от текста от формат, аз не отидат в. Това е урок за младите и силни по дух - съставянето на всички таблици с такива обещаващи заглавия като когенерацията, PAPX, SHST, PLCF и всички в същия дух. Професия прави вече за титаните - voproizvesti формат, точно както се прави Word.

Остава само да донесе морал, и това е банална: че един човек дойде с друг zavsegda може да се счупят. Какво означава Уорд по-малко срамно формат, грозни и напълно неподходящи за масова размяна на информационни задачи в хетерогенни системи.

Допълнителна информация:

Подкрепете проекта - споделете линка, благодаря!