itthon / Kereset / Megnyitás vö. Konfiguráció telepítése CF fájlból. A konténerleolvasás elve

Megnyitás vö. Konfiguráció telepítése CF fájlból. A konténerleolvasás elve

Reméljük, hogy segítettünk megoldani a CF fájllal kapcsolatos problémáját. Ha nem tudja, hogy a listánkról honnan tölthet le egy alkalmazást, kattintson a linkre (ez a program neve) - Részletesebb információt talál arról, honnan töltheti le a szükséges alkalmazás biztonságos telepítésű verzióját.

Ha ellátogat erre az oldalra, akkor konkrétan ezekre vagy hasonló kérdésekre válaszolhat:

  • Hogyan lehet megnyitni egy fájlt CF kiterjesztéssel?
  • Hogyan lehet CF fájlt konvertálni másik formátumba?
  • Mi a CF fájlformátum kiterjesztése?
  • Milyen programok támogatják a CF fájlt?

Ha az oldalon található anyagok megtekintése után sem kapott kielégítő választ a fentebb feltett kérdésekre, ez azt jelenti, hogy a CF fájlról itt közölt információk hiányosak. Vegye fel velünk a kapcsolatot a kapcsolatfelvételi űrlap segítségével, és írja meg, milyen információkat nem talált.

Mi okozhat még problémákat?

Több oka is lehet annak, hogy miért nem tudja megnyitni a CF fájlt (nem csak a megfelelő alkalmazás hiánya).
Először- előfordulhat, hogy a CF fájl helytelenül kapcsolódik (nem kompatibilis) az azt támogató telepített alkalmazással. Ebben az esetben ezt a kapcsolatot magának kell megváltoztatnia. Ehhez kattintson a jobb gombbal a szerkeszteni kívánt CF-fájlra, majd kattintson a lehetőségre "Nyitni vele" majd válassza ki a listából a telepített programot. Ezt követően a CF fájl megnyitásával kapcsolatos problémáknak teljesen meg kell szűnniük.
Másodszor- előfordulhat, hogy a megnyitni kívánt fájl egyszerűen megsérült. Ebben az esetben az lenne a legjobb, ha keresne egy új verziót, vagy töltse le újra ugyanabból a forrásból (talán valamilyen oknál fogva az előző munkamenetben a CF fájl letöltése nem fejeződött be, és nem lehetett megfelelően megnyitni) .

Akarsz segíteni?

Ha további információi vannak a CF fájlkiterjesztésről, hálásak vagyunk, ha megosztja azokat webhelyünk felhasználóival. Használja az alábbi űrlapot, és küldje el nekünk adatait a CF fájlról.

Ebben a cikkben megtanítom, hogyan hozhat létre 1C konfigurációs cf fájlt. Mi ez a fájl, és milyen célokra van szükség rá? Válaszoljunk az első kérdésre: az 1C konfiguráció ebben a fájlban van elmentve. Milyen célokra használják leggyakrabban? Az elmentett konfiguráció betöltése egy üres adatbázisba. De van még egy, nevezzük „nem szabványos alkalmazásnak”.

A cf fájl segítségével frissítheti az 1C konfigurációt. Ezzel a fájllal egyszerre több kiadást is átugorhat, ahelyett, hogy egyenként frissítené őket cfu-fájlokkal. Olvasson többet az 1C konfiguráció lépésről lépésre történő frissítéséről a cikkemben:

Ebben a cikkben megtudjuk, hogyan hozhat létre cf fájlt. Ehhez be kell jelentkezni.

Kérjük, vegye figyelembe, hogy annak a felhasználónak, akivel bejelentkezik az 1C adatbázis-konfigurátorba, rendelkeznie kell a konfigurátorral való együttműködés jogával.

Egy cf fájl létrehozásához meg kell nyitnia a konfigurációt, ha az be van zárva. Nagyon gyakran zárva lehet. A megnyitáshoz kattintson a – konfiguráció megnyitása gombra.

Megnyílt a konfiguráció, bal oldalon a metaadatok listája látható.

Ha a konfigurátorhoz ment, és a bal oldalon a metaadatok listáját látta, ez azt jelenti, hogy a konfiguráció már meg van nyitva, és nem kell megnyitnia. Amikor nyitva van, általában a „Konfiguráció bezárása” gomb aktív

Ha ez a gomb aktív, de nincs metaadatok listája, az azt jelenti, hogy egyszerűen nem jelenik meg.

Lépjen a konfigurációs menübe, amelyben kiválasztja a „Konfiguráció mentése fájlba” elemet.

Kiválasztjuk a könyvtárat, ahová menteni fogjuk, írjuk a fájl nevét. Általában konfigurációnévvel és kiadási számmal írok.

Minden fájl mentésre kerül.

Most a segítségével frissítheti a hasonló konfigurációkat.

A cf fájl létrehozásának folyamatát élőben nézheti meg az alábbi videóban:


Az 1C konfiguráció frissítése cf fájl segítségével, olvassa el a következő cikkemet:

Tanuld meg a konfigurálás alapjait 1C-ben, és tanulj meg programozni az „1C: Enterprise”-ban a könyveim segítségével: és „A fejlesztés alapjai 1C: Taxiban”

Tanuljon programozni 1C-ben a „Programozás 1C-ben 11 lépésben” című könyvemben.

  1. A könyv világos és egyszerű nyelven íródott - kezdőknek.
  2. Tanuld meg megérteni az 1C architektúrát;
  3. Elkezdi írni a kódot 1C nyelven;
  4. Alapvető programozási technikák elsajátítása;
  5. Rögzítse tudását problémakönyv segítségével;

Kiváló útmutató a menedzselt 1C alkalmazások fejlesztéséhez, kezdő fejlesztőknek és tapasztalt programozóknak egyaránt.

  1. Nagyon hozzáférhető és érthető prezentációs nyelv
  2. A könyvet e-mailben küldjük el PDF formátumban. Bármilyen eszközön kinyitható!
  3. Ismerje meg a felügyelt 1C alkalmazás ideológiáját
  4. Ismerje meg, hogyan fejleszthet felügyelt alkalmazást;
  5. Ismerje meg a kezelt 1C űrlapok fejlesztését;
  6. Képes lesz dolgozni a kezelt űrlapok alapvető és szükséges elemeivel
  7. A felügyelt alkalmazás alatti programozás egyértelművé válik

Promóciós kód 15% kedvezményért - 48PVXHeYu


Ha ez a lecke segített valamilyen probléma megoldásában, tetszett vagy hasznosnak találta, akkor tetszőleges összeggel támogathatja projektemet:

Fizethet kézzel:

Yandex.Money - 410012882996301
Web Money - R955262494655

Csatlakozz a csoportjaimhoz.

Az előző leckékben említettük, hogy a konfiguráció importálható egy .CF kiterjesztésű fájlból. Például egy barátságos cég adhat Önnek egy ilyen fájlt, hogy telepítse a konfiguráció legújabb verzióját, és kísérletezzen vele. Az események ilyen fejlődése során a következőképpen kell eljárnia.

Először a már ismert ablakban, amely a program elindítása után megjelenik, kattintson a gombra Hozzáadás.

A következő ablakban válassza ki Új információs bázis létrehozása.

A következő ablakban ki kell választani az Infobázis létrehozása konfiguráció nélkül elemet új konfiguráció fejlesztéséhez vagy egy korábban ki nem töltött információs bázis betöltéséhez.

A következő ablakban adja meg az adatbázis nevét.

A listában felsorolt ​​műveletek elvégzése után információs bázisok egy új üres adatbázis jelenik meg. Most ki kell választania, és kattintson a Konfigurátor gombra. Megnyílik a konfigurátor ablak.

Amikor először nyitja meg az ablakot, az üres, és most végre kell hajtanunk néhány lépést, hogy betöltsük a CF fájlt az üres konfigurációba.

Menüparancs végrehajtása Konfiguráció > Konfiguráció megnyitása. A program ablaka megváltozik - a konfigurációs fa megnyílik a bal oldalán. Ez még nem érdekel minket. Most már futtathatja a parancsot Konfiguráció > Konfiguráció betöltése fájlból. Ez a parancs lehetővé teszi a meglévő (esetünkben üres) konfiguráció teljes lecserélését a CF fájlba mentett konfigurációval. A megjelenő ablakban meg kell adni annak a fájlnak az elérési útját, amelyben a betölteni kívánt konfiguráció tárolva van.

Most már csak egy gombot kell megnyomnia Nyisd kiés várja meg, amíg a program betölti a konfigurációt. Ez elég sokáig tarthat. Ha a rendszer kérdéseket tesz fel Önnek (különösen az adatbázis-konfiguráció frissítésével, a konfigurációs információk szerkezetében bekövetkezett változások elfogadásával kapcsolatban), válaszoljon rájuk igennel.

A programablak bal alsó sarkában a konfiguráció frissítésének folyamatáról szóló szervizüzenetek jelennek meg. A frissítés befejezése után (az adatbázis betöltésére vonatkozó szolgáltatási üzenetek leállnak), bezárhatja a konfiguráló ablakot, és elindíthatja a program futtatását felhasználói módban. A gyakorlatban azonban a telepítés információs bázis a fenti módszerek egyikének használata általában nem korlátozza a konfiguráció első futtatása előtt elvégzendő feladatokat. Különösen nem szabad megfeledkeznünk a frissítésekről.

*.vö- a fájl csak a konfigurációt (kódot és szerkezetet) tartalmazza felhasználói adatok nélkül. Létrehozva az 1C 8.x konfigurátorból: "Konfiguráció -> Konfiguráció mentése fájlba" vagy "Konfiguráció -> Kézbesítési konfiguráció -> Kézbesítési fájl létrehozása és konfiguráció frissítése -> "Kézbesítési fájl létrehozása" attribútum.

*.cfu- a fájl csak konfigurációs frissítést tartalmaz. Például fájl 1cv8.cfu. Ebből a fájlból nem lehet konfigurációt létrehozni, mivel csak az új és az előző konfiguráció közötti eltéréseket tartalmazza. Létrehozva az 1C 8.x konfigurátorból: „Konfiguráció -> Konfiguráció kézbesítése -> Kézbesítési fájl és konfigurációs frissítés létrehozása -> Jelölje: „Konfigurációs frissítési fájl létrehozása””.

*.dt- a fájl tartalmazza a konfigurációt a felhasználói adatbázissal együtt. Ez egy speciális 1C 8 archív formátum, amely az 1C 8.x konfigurátorból jön létre: „Adminisztráció -> Feltöltés infobázis”.

*.epf (*.erf) – külső feldolgozó (jelentés) fájl. A konfigurációból származó bármely feldolgozás (jelentés) külsőleg menthető. Az 1C 8.x konfigurátorból készült: „Konfiguráció -> Konfiguráció megnyitása -> menjen a kívánt feldolgozásra (jelentés) -> válassza ki a jobb egérgombbal -> Mentés külső feldolgozásként, jelentés...”.

*.1cd– teljes értékű adatbázisfájl. Alapértelmezett névábrázolás: 1Cv8.1CD. Tartalmazza a konfigurációt, az adatbázist, a felhasználói beállításokat. Az 1C 8.x platformmal nyílik meg. Úgy jön létre, hogy az „Új információs bázis létrehozása” menüpont kiválasztásakor a „Hozzáadás” gombra kattintva automatikusan új konfigurációt hozzon létre.

*.log, *.lgf, *.lgp, *.elf- naplófájlok, amelyek információkat (regiszteradatokat) gyűjtenek az 1C 8.0 8.1, 8.2, 8.3.

*. cdn - fájl ezzel a kiterjesztéssel ( 1Cv8.cdn) az 1C Enterprise adatbázis kézi vagy automatikus blokkolására szolgál nyolcadik verzió.

*.mxl- nyomtatott űrlapok fájljait használják, beleértve az 1C-t is. Mindkettő nyomtatott dokumentumok, referenciakönyvek, jelentések és különféle adattároló eszközök különféle osztályozókhoz. Megnyílik a konfigurátoron keresztül, vagy 1C:Enterprise módban a „file -> open” paranccsal. Ugyanígy jön létre: Konfigurátor módban vagy 1C:Enterprise-ben a „file -> new” segítségével. Az ilyen kiterjesztésű fájlok átviteli szabályokként is szolgálhatnak, például 1C 7.7-től 8.2-ig (acc77_82.xml és a segédfeldolgozás exp77_82.ert) - általában az ExtForms mappában találhatók.

*.efd- ez egy 1C archív fájl, amelyet a konfiguráció telepítéséhez használnak. Tartalmazza az 1C konfigurációt vagy annak frissítését. A setup.exe segédfájllal indítható el (ugyanabban a mappában kell lennie).

*.mft– segédfájl sablonból konfiguráció létrehozásához. Konfigurációs információkat, leírást, elérési utat, nevet tartalmaz. Közvetlenül maga a platform használja, amikor egy sablonból 1C információs bázist hoz létre.

*.grs- grafikus diagramok fájljai speciális 1C formátumban. Megnyílik a konfigurátoron keresztül, vagy 1C:Enterprise módban a „file -> open” paranccsal. Ugyanígy jön létre: Konfigurátor módban vagy 1C:Enterprise-ben a „file -> new” segítségével.

*.geo- földrajzi diagramok fájljai speciális 1C formátumban. Megnyílik a konfigurátoron keresztül, vagy 1C:Enterprise módban a „file -> open” paranccsal. Ugyanígy jön létre: Konfigurátor módban vagy 1C:Enterprise-ben a „file -> new” segítségével.

*.utca- szövegsablon fájlok. Főleg 1C fejlesztők használják.

*.pff- egy fájl mentett teljesítménymérésekkel. Rendszergazdák és 1C szakemberek használják.

A konfigurációs fájl (*.cf) belső szerkezete nem titok. Jó emberek régen szétszedték, és sok érdekes segédprogramot hoztak létre, amelyek lehetővé teszik, hogy ezzel a formátummal dolgozzon. Az Infostarton jó tucat (ha nem több) érdekes publikáció található, amelyek így vagy úgy olvassák a *.cf fájlok tartalmát, tehát ez a téma egyáltalán nem újdonság.

Sajnos azonban ehhez a formátumhoz nagyon kevés jó, jó minőségű dokumentáció létezik. A cikk megírására kedves barátom inspirált, aki részletesen leírta az 1C:Enterprise fájl információbiztonsági formátum (*.1CD) felépítését.

Úgy tűnik számomra, hogy ez a cikk katalizátora lett számos más szerzők által létrehozott fejlesztésnek. Az információk nyitottsága és hozzáférhetősége ösztönözte a szerzők kreatív tevékenységét, és az egész közösség számos kiváló eszközt kapott az 1C fájladatbázisokkal való munkához.

Számomra úgy tűnik, hogy a CF formátum részletes leírása sok szerzőt is érdekelni fog, és talán lehetőségünk lesz sok új érdekes fejleményt látni a konfigurációs fájlok témakörében.

Háttér

Mint fentebb említettük, a formátum szerkezete régóta ismert, és a felépítéséről az interneten található információ (bár meglehetősen szűkös). Szükségem volt erre az információra A program kidolgozásakor, amelyen dolgoztam, a következő anyagokra támaszkodtam:

  • , szerző
  • http://www.richmedia.us/post/2011/01/18/cf-file-format-1c-8-compatible.aspx, ha nem tévedek, a szerző
  • , szerző

Terminológia

Térjünk közvetlenül a beszélgetésünk témájára.

Az i-ek pontozásához döntsük el magának a formátumnak a nevét.

Először is, nem csak konfigurációs fájlok jönnek létre ebben a formátumban, hanem külső jelentési és feldolgozási fájlok is. Az interneten a Compound fájl névre bukkantam. Talán jól bevált az 1C oldtimerek között, de nem igazán szeretem.

E cikk keretein belül azt javaslom, hogy ezt a formátumot nevezzük „ tartály" Ha a tisztelt közönség javasolja a helyes nevet a megjegyzésekben, nagyon örülök.

Nézzünk befelé

Az adattárolás logikai egysége belül tartály van dokumentum . A dokumentum egy értelmes, teljes adathalmaz, amely valamilyen módon olvasható és értelmezhető. Nem használom kifejezetten ezt a kifejezést fájlt", mert ezt a nevet lefoglalom egy másik entitásnak, amelyről kicsit később.

Tehát általánosságban véve a CF (EPF/ERF) fájl az tartály , amelyben tárolják dokumentáció .

A tárolóban lévő minden dokumentum felosztható blokkok . Az adattárolás minimális fizikai egysége a Blokk, de értelmes logikai egység az dokumentum. Más szavakkal, a tárolóban lévő dokumentumok szétszórt darabok formájában heverhetnek ( blokkok) és a dokumentum tartalmának elolvasásához annak minden részét össze kell gyűjteni és kombinálni.

A konténer szerkezete

A tartály a következő részeket tartalmazza (sorrendben):

  1. Tárolófejléc
    1. Az első üres blokk címe, amelybe adatot lehet hozzáadni
    2. Alapértelmezett blokkméret
    3. A tárolóban lévő fájlok száma
  2. A tartály tartalmát tartalmazó dokumentum
  3. A tartalomjegyzékben felsorolt ​​tényleges adatok

A tartály tartalmának elolvasásához el kell olvasnia a tartalomjegyzéket. Mivel azonban dokumentum tartalmazza blokkok, akkor először meg kell tanulnia, hogyan állíthat össze egy teljes dokumentumot ugyanezekből a blokkokból.

Blokk szerkezet

A blokk fejlécből és törzsből áll. A fejléc jelzi a teljes dokumentum teljes méretét, az aktuális blokk méretét és a következő blokk címét (pozícióját a fájlban). Közvetlenül a fejléc után jön a blokk törzse - valójában az adatok, amelyekre szükségünk van. A blokk törzse pontosan a fejlécben megadott hosszúságú (byte-ban).

A tartály belsejében itt-ott van egy mágikus állandó, amely egy bizonyos „ürességet” jelöl - ez a 0x7fffffff szám.

Amikor blokkokból összeállítunk egy dokumentumot, a fejlécben megnézzük a következő blokk címét. Ha egyenlő a 0x7ffffffff-vel, akkor nincs „következő” blokk, ez az utolsó.

A 0x7ffffffff konstans az INT_MAX értéke, azaz. egy 4 bájtos előjelű egész szám maximális értéke.

Logikai "fájlok"

Említettem, hogy a " fájlt– Megőrzöm a jobb időkre. Eljöttek azok az idők :)

A teljes konfiguráció egy tárolóban van tárolva az űrlapon fájlokat. Ha emlékszünk az iskolai informatika kurzusra, akkor emlékezni fogunk arra, hogy a „fájl”, azt mondták, egy név dokumentum.

A fájl abban különbözik a „dokumentumtól”, hogy van neve, és ezen a néven lehet rá hivatkozni. Ha a konfiguráció tartalmát elemezzük és metaadatfát építünk, akkor a fájlok belsejében sok hivatkozást találunk más fájlokra. A konfigurációs beolvasási eljárás neveken működik fájlokatés név szerint hivatkozik rájuk.

Összefoglalva a következőket mondhatjuk: a konténer különböző dokumentáció, de néhányuknak van neve is. Az ilyen dokumentumokat " fájlokat„És nem szolgáltató jellegűek, hanem közvetlenül alkalmazott jellegűek. Pontosan fájlokat konfigurációs metaadatok tárolására.

Fájl komponensek

Minden fájl kettőből áll dokumentumokat:

  1. A fájlnevet és a létrehozási/módosítási dátumokat tartalmazó dokumentumot tulajdonítja
  2. A tartalomdokumentum, amely a fájl tényleges törzsét tartalmazza

Most, hogy az összes összetevőt bejelentették, hátra van a tároló talán legfontosabb dokumentuma - a tartalomjegyzék dokumentum, amely az összes tárolófájl helyét jelzi. Mint fentebb említettük, a tartalomjegyzék dokumentum a tároló legelső dokumentuma, és közvetlenül a tároló címe után következik.

  1. Az attribútum dokumentum címe (fájleltolása).
  2. A tartalomdokumentum címe (fájleltolása).
  3. 0x7fffffff szám (rekord vége).

Hadd emlékeztesselek arra, hogy minden dokumentum blokkra osztható (töredezett). A dokumentum blokkokból történő összeállításának algoritmusát az alábbiakban tárgyaljuk.

A tartalomjegyzék bejegyzése egy 2-es számjegyű INT32. Az első szám a fájlattribútumok dokumentumának címe. Ez a cím az attribútumok dokumentum 1. blokkjának elejére visz minket. Az attribútumok dokumentumból megtudhatjuk a fájl nevét. A második szám a fájl tartalmának dokumentumcíme. Ezen a címen kerülünk a tartalomdokumentum 1. blokkjának elejére, ahonnan közvetlenül beolvassuk a fájl adatait.

Az adattömörítés jellemzői.

Egy konténer sokféle fájlt tartalmazhat. Ezek általában UTF-8 kódolású szövegfájlok. A tárolófájlok között azonban lehetnek más tárolófájlok is. A legegyszerűbb analógia a fájlrendszerrel van. A tároló egy könyvtár, és a tárolóban lévő fájlok a tartalma. Egy könyvtár más könyvtárakat is tartalmazhat.

Ennek a "fájlrendszernek" a gyökérkönyvtára maga a *.CF fájl. Benne lehetnek más konténerfájlok, lényegében egymásba ágyazott könyvtárak, amelyek olvasása pontosan ugyanazzal az algoritmussal történik, és pontosan ugyanolyan szerkezetűek.

Van azonban egy sajátossága a gyökérkönyvtárnak. Minden tartalmi dokumentumok a gyökérkönyvtárban lévő fájlok tömörítése a Deflate algoritmussal történik. A beágyazott könyvtárakban lévő fájlok tartalma többé nincs tömörítve. Egyszerűen fogalmazva, egy konténerfájl legfelső szintjén az összes fájl törzse tömörítésre kerül, de ha a tárolóban lévő fájl maga is konténer, akkor a benne lévő fájlok már tiszta formában (tömörítés nélkül) lesznek kiírva.

Szabad blokkok lánca

Bármilyen adat eltávolítása egy tárolóból üres helyeket eredményezhet. Ezek a szabad helyek láncba kapcsolódnak, és egyfajta „dokumentumot” alkotnak, melynek adatai hiányoznak. Más szóval, a szabad blokkok ugyanazon elv szerint kapcsolódnak egymáshoz, mint ahogy a dokumentumblokkok is kapcsolódnak egymáshoz. Az első szabad blokk címe a konténer fejlécének legelején látható. Ha egy szabad blokk címe INT_MAX, akkor ez azt jelenti, hogy a tároló közepén nincsenek szabad (üres) blokkok.

Az elméleti rész rövid összefoglalása

  1. A CF(EPF/ERF) fájl „container” formátumban van írva
  2. A tároló fejléccel kezdődik
  3. A tároló minden tartalma, a fejléc kivételével, „dokumentumként” van írva.
  4. A dokumentum blokkokra osztható
  5. A dokumentum blokkcímmel kezdődik, amely megmondja, hogyan kell elolvasni a teljes dokumentumot
  6. Közvetlenül a tároló címe után egy tartalomjegyzék található.
  7. A tartalomjegyzék olyan bejegyzések gyűjteménye, amelyek a " fájlokat» a tartály belsejében
  8. Minden fájl két dokumentumból áll – egy attribútum-dokumentumból, ahol a fájl neve szerepel, és egy tartalomdokumentumból, ahol a fájladatok ténylegesen találhatók.
  9. Minden tartalomjegyzék bejegyzés 2 címet tartalmaz. Az első a fájlattribútumok dokumentumának címe, a második a tartalomdokumentum címe.
  10. Egy tároló tartalmazhat beágyazott tárolókat (például beágyazott mappákat)
  11. A gyökértárolóban lévő fájlok tömörítése Deflate algoritmussal történik, a beágyazott tárolókban lévő fájlok tömörítés nélkül íródnak.

Érezzük már a bájtokat

Tehát itt az ideje átgondolni, hogy a fent említett összes entitás pontosan hogyan épül fel.

A konténerből az adatok kiolvasásának fő módja a bizonyos dokumentumokat alkotó blokkok láncának beolvasása. Úgy tűnik, a megfelelő kiindulópont a blokkdokumentumok olvasásának elve.

Dokumentum olvasása blokkokban

A tárolóban lévő minden dokumentumnak blokkfejléccel kell kezdődnie. Ebben az esetben a dokumentum több blokkra osztható. Egy dokumentum olvasásához blokkokból kell „összeszerelni”.

Tehát a blokk fejléce egy 31 bájt hosszúságú karakterlánc. Ez a sor így néz ki:

[A teljes dokumentum mérete][Szóköz][Az aktuális blokk mérete][Szóköz][A következő blokk címe][Szóköz] , ahol:

  • CRLF – szabványos Windows soremelés, karakterpár \r\n (0x0D,0x0A)
  • Teljes dokumentumméret – a dokumentum teljes hossza bájtban. Egy hexadecimális szám karakterlánc reprezentációjaként írva. Hossz - 8 bájt.
  • Tér – tér. Szimbólum 0x20
  • Az aktuális blokk mérete a blokk törzsének hossza bájtban. Ez egy INT32 szám karakterlánc-reprezentációjaként is meg van írva hexadecimális formátumban. Ha a dokumentum egyetlen blokkból áll, akkor a teljes dokumentum mérete vagy kisebb, vagy megegyezik az aktuális blokk méretével (ami logikus)
  • Következő blokk címe - az a cím, amelyen a dokumentum következő blokkja található. Ha a következő blokk címe INT_MAX, akkor ez azt jelenti, hogy nincs következő blokk. A következő blokk címe is egy szám karakterlánc-reprezentációjaként kerül kiírásra.

Közvetlenül a blokk fejléce után következik a blokk törzse, amelynek hossza a „Jelenlegi blokkméret” mezőben megadott.

Nézzük a képet: a teljes dokumentum hossza 0x54 bájt, ezek a 0x54 bájtok piros kerettel vannak kiemelve. Ez a dokumentum adata. A blokk hossza 0x200 bájt, azaz. hosszabb, mint maga a dokumentum hossza. Emiatt a blokk többi adata a kihasználatlan terület "nulláit" jelenti. Jelentős bájtok a piros kerettel jelölt bájtok.

Ha a dokumentum hossza nagyobb, mint a blokk hossza, akkor a következő blokkot kell beolvasni. Ha a „Következő blokk címe” mezőbe 0x7fffffff-től eltérő érték van írva, akkor be kell olvasnia az aktuális blokkot, majd erre a címre kell mennie, és be kell olvasnia egy másik blokkot. Ha ez a blokk tartalmazza a következő blokk címét is, akkor oda is el kell menni. Így a dokumentumot alkotó blokkok „lánca” jön létre.

Az olvasást addig kell folytatni, amíg a 0x7fffffff értéket meg nem találja a „Következő blokk címe” mezőben, vagy amíg a „Teljes dokumentum mérete” mezőben megadott számú bájt beolvasásra nem kerül.

A „Teljes dokumentumméret” mezőnek csak az első blokknál van jelentősége. A dokumentum minden további blokkjában 0x00000000 értéke van.

Tárolófejléc formátuma

A tároló fejléce 16 bájt hosszú, és a következő mezőkből áll:

Terület

Magyarázat

Az első szabad blokk címe

INT32 (4 bájt)

Az eltolás, amelynél a szabad blokkok lánca kezdődik

Alapértelmezett blokkméret

INT32 (4 bájt)

Egy blokk bármilyen hosszúságú lehet, de az alapértelmezett például új blokkok hozzáadására használható.

Ismeretlen célú mező (lásd a cikkhez fűzött megjegyzéseket) Gyakran egybeesik a tárolóban lévő fájlok számával

INT32 (4 bájt)

Egy bizonyos értéket tükröző szám, amely általában egybeesik a tárolóban lévő fájlok számával, azonban a kommentekben szereplő kollégák úgy vélik, hogy ez nem teljesen igaz. Ez a szám semmilyen módon nem befolyásolja a tároló értelmezési algoritmust, figyelmen kívül hagyható.

Fenntartott mező

INT32 (4 bájt)

Mindig egyenlő 0-val (mindig?)

Tartalomjegyzék Dokumentum rögzítési formátum

Fájl attribútumok Dokumentumformátum

Az attribútumok dokumentuma leírja a fájl nevét és a létrehozás/módosítás dátumait.

Terület

Magyarázat

A fájl létrehozásának ideje

UINT64 (8 bájt)

Fájl létrehozási ideje, 100 mikroszekundumos időközökben kifejezve korszakunk kezdete óta (01/01/0001 00:00:00)

Fájl módosítási idő

UINT64 (8 bájt)

Hasonlóképpen

Fenntartott mező

INT32 (4 bájt)

Mindig 0. Lehet, hogy ezek attribútumjelzők, például csak olvasható, rejtett stb. Nem találkoztam azonban olyan fájlokkal, ahol ez a mező eltérne a nullától.

Fájl név

Karakterlánc UTF-16 formátumban

A dokumentum teljes fennmaradó törzsét elfoglalja (mínusz 2 dátum és egy tartalék mező)

A konténerleolvasás elve

  1. Állítson össze egy tartalomjegyzék dokumentumot blokkokból, és olvassa el
  2. Menjen végig a tartalomjegyzék dokumentumban lévő összes bejegyzésen, és olvassa el a tárolófájlok dokumentumattribútumait (neveit).
  3. Minden beérkezett név hozzárendelése a tartalomdokumentum címéhez
  4. A kimenet a „Fájlnév” -> „Tartalom címe” megfeleltetés.

Fájlok olvasása

  1. Fájlnév alapján szerezze be a tartalomdokumentum címét a tartalomjegyzékből
  2. Tartalomdokumentum összeállítása blokkokból
  3. Ha ez a gyökértároló, akkor csomagolja ki a tartalmi dokumentumot (tömörítve van)
  4. Kész. Az eredmény a keresett fájl adatai.

Frissítés 2014.02.25-től

Végül

Ez a cikk nem a végső igazság, valószínűleg még hibák is vannak benne. Ha azonban ez a téma érdekes az Ön számára, akkor remélem, hogy ez a cikk segít a projektek megvalósításában. Sok szerencsét!