Fișierul erf 1c. Cum se deschide fișierul .ERF? Lanț de blocuri libere

- Extensia (formatul) sunt caracterele de la sfârșitul fișierului după ultimul punct.
- Computerul determină tipul fișierului exact după extensie.
- În mod implicit, Windows nu afișează extensii de nume de fișiere.
- Unele caractere nu pot fi folosite în numele și extensia fișierului.
- Nu toate formatele sunt legate de același program.
- Mai jos sunt toate programele cu care puteți deschide fișierul ERF.

XnView este un program destul de puternic care combină multe funcții pentru lucrul cu imagini. Poate fi o simplă vizualizare a fișierelor și conversia acestora și o procesare minoră. Este multiplatformă, ceea ce îi permite să fie utilizat în aproape orice sistem. Programul este, de asemenea, unic prin faptul că acceptă aproximativ 400 de formate de imagine diferite, printre care se numără atât cele mai utilizate și populare, cât și formate non-standard. XnView poate converti imagini în loturi. Adevărat, ele pot fi convertite doar în 50 de formate, dar printre aceste 50 de formate există toate extensiile populare.

Chasys Draw IES este un editor multifuncțional care include o serie de utilități, cum ar fi un editor grafic, un vizualizator de imagini și fotografii, un modul pentru conversia grafică în lot și un modul pentru conversia fotografiilor digitale în format RAW. În fereastra principală a aplicației, puteți personaliza foaia de lucru selectând tipul de proiect pe care doriți să îl creați. Aplicația vă permite să efectuați astfel de manipulări complexe de imagine, cum ar fi crearea unei compoziții pentru imprimare, animație pentru resurse web, o imagine pentru un CD, DVD. Programul vă permite să scanați o imagine dacă aveți echipamentul necesar. Pe langa acest set...

XnConvert este un utilitar util pentru conversie și prelucrare primară fotografii si imagini. Funcționează cu peste 400 de formate. Acceptă toate formatele grafice populare. Cu instrumente simple XnConvert, puteți regla luminozitatea, gama și contrastul. În aplicație, puteți redimensiona fotografiile, puteți aplica filtre și o serie de efecte populare. Utilizatorul poate adăuga filigrane și retușa. Folosind aplicația, puteți elimina metadatele, puteți decupa fișiere și le puteți roti. XnConvert menține un jurnal în care utilizatorul va vedea toate detaliile manipulărilor recente ale imaginilor.

Honeyview este un vizualizator de fotografii simplu și frumos. Acceptă toate formatele populare de imagini și fotografii, inclusiv cele care sunt „raw”. Există, de asemenea, o interfață convenabilă în care puteți vizualiza o fotografie pe tot ecranul, sau două fotografii în paralel, ceea ce este foarte convenabil dacă trebuie să o alegeți pe cea mai bună. Puteți salva imediat fotografiile preferate într-un folder separat. Dacă fotografia conține date despre locație, atunci programul va deschide Google Maps, unde va fi posibil să vedeți locul în care a fost făcută fotografia. Cu ajutorul tastelor rapide, programul va deschide în Windows Explorer fotografia care este deschisă în ...

Wireshark este un program conceput în primul rând pentru ca administratorii de sistem să analizeze traficul de rețea. Există situații în care rețeaua începe să se defecteze și găsirea cauzei acestor defecțiuni este adesea destul de dificilă. Ar putea fi un virus, spyware sau orice alt motiv. Pentru a găsi și apoi a elimina vinovatul, va fi necesar să testați tot traficul de intrare și de ieșire. Pentru asta este Wireshark. Această aplicație are o interfață grafică și este foarte populară în întreaga lume, deoarece informațiile pot fi vizualizate nu numai în cod, ci și folosind o interfață grafică.

ImBatch vă permite să editați rapid și ușor orice imagine. Este suficient să-l deschideți sau să îl trageți în fereastra programului și vă puteți pune la treabă. Vă permite să activați previzualizările din efecte și modificări și este potrivit pentru schimbări simple de culoare sau mărire, precum și pentru muncă mai profesională. Programul este de asemenea bun pentru că este ușor și nu încarcă procesorul în timpul funcționării, totul este foarte rapid - am deschis imaginea, am aplicat efectul, am salvat-o. Are o gamă largă de instrumente și funcții, poate aplica efecte precum estomparea, ajustările de culoare și multe altele. ImBatch acceptă multe limbi, inclusiv...

WildBit Viewer este un vizualizator digital de fotografii care este plin de caracteristici și funcționalități. Deci, de exemplu, programul are un editor de efecte standard și este, de asemenea, posibil să utilizați imaginea finită ca fundal pentru desktop. În plus, puteți vizualiza imaginile ca o expunere de diapozitive, ceea ce este util dacă vă arătați fotografiile cuiva și nu doriți să derulați manual prin ele. Programul are peste 70 de efecte de tranziție atunci când afișează o prezentare de diapozitive. O altă funcție a programului este afișarea tuturor metadatelor, precum și redenumirea imaginilor. Transferul lotului este, de asemenea, acceptat...

Zoner Photo Studio este un editor foarte util pentru diferite imagini. Vă permite să copiați fotografii de pe orice cameră și să le editați imediat. Are un set de funcții de bază. Ajută la eliminarea „efectului de ochi roșii”. Vă permite să creați vederi panoramice vii și calendare colorate. Programul vă ajută să vă creați propria galerie foto. Efectuează o căutare rapidă pentru fotografia procesată dorită. Vă permite să imprimați imagini, să le trimiteți către rețelele sociale, prin e-mail. Are patru file care vă permit să gestionați programul. Importă imagini, vă permite să gestionați arhiva de imagini de pe computer.

Free Opener este un vizualizator destul de funcțional pentru cele mai populare fișiere, inclusiv arhive Winrar, documente Microsoft Office, PDF, documente Photoshop, fișiere torrent, pictograme, pagini web, documente text, fișiere audio și video, fișiere grafice inclusiv Flash și multe altele. Numărul de fișiere acceptate depășește șaptezeci. Programului îi lipsesc setările și opțiunile obișnuite pentru noi, cu excepția modificării designului. De asemenea, trebuie menționat că nu există limba rusă, dar având în vedere simplitatea, nu subestimați programul. Free Opener este un program versatil și foarte la îndemână pentru citirea diferitelor tipuri de fișiere.

cel mai cauza comuna problemele cu deschiderea fișierului ERF sunt pur și simplu lipsa aplicațiilor adecvate instalate pe computer. În acest caz, este suficient să găsiți, descărcați și instalați o aplicație care acceptă fișiere în format ERF - astfel de programe sunt disponibile mai jos.

Sistem de căutare

Introduceți extensia fișierului

Ajutor

cheie

Vă rugăm să rețineți că unele date codificate din fișiere pe care computerul nostru nu le citește pot fi uneori vizualizate în Notepad. În acest fel vom citi fragmente de text sau numere - Merită să verificăm dacă această metodă funcționează și în cazul fișierelor ERF.

Ce să faci dacă aplicația din listă a fost deja instalată?

Adesea, o aplicație instalată ar trebui să se conecteze automat la un fișier ERF. Dacă nu s-a întâmplat, atunci fișierul ERF poate fi legat manual cu aplicația nou instalată manual. Pur și simplu faceți clic dreapta pe fișierul ERZ, apoi selectați din lista disponibilă „Alege programul implicit”. Apoi trebuie să selectați opțiunea „Răsfoiți” și să găsiți aplicația preferată. Modificările efectuate trebuie aprobate cu opțiunea „OK”.

Programe care deschid un fișier ERF

Windows
linux

De ce nu pot deschide un fișier ERF?

Problemele cu fișierele ERF pot avea și alte motive. Uneori chiar și instalarea pe un computer software Servirea fișierelor ERF nu va rezolva problema. Motivul incapacității de a deschide, precum și de a lucra cu fișierul ERF, poate fi, de asemenea:

Linkuri inadecvate la fișiere ERF în intrările de registru
- coruperea fișierului ERF pe care îl deschidem
- infecția fișierelor ERF (viruși)
- resursă computer prea mică
- șoferi învechiți
- eliminarea extensiei ERF din registrul sistemului Windows
- instalarea incompletă a unui program care acceptă extensia ERF

Remedierea acestor probleme ar trebui să ducă la deschiderea și lucrul gratuit cu fișierele ERF. În cazul în care computerul mai are probleme cu fișierele, trebuie să apelați la ajutorul unui expert care va determina cauza exactă.

Computerul meu nu afișează extensii de fișiere, ce ar trebui să fac?

În instalările standard ale sistemului Windows, utilizatorul de calculator nu vede extensia de fișier ERF. Acest lucru poate fi schimbat cu succes în setări. Doar mergeți la „Panou de control” și selectați „Vizualizare și personalizare”. Apoi, trebuie să introduceți „Opțiuni dosar” și să deschideți „Vizualizare”. În fila „Vizualizare” există o opțiune „Ascunde extensiile tipurilor de fișiere cunoscute” – trebuie să selectați această opțiune și să confirmați operația apăsând butonul „OK”. În acest moment, toate extensiile de fișiere, inclusiv ERF, ar trebui să apară sortate după numele fișierului.

*.cf- fisierul contine doar configuratia (cod si structura) fara date utilizator. Este creat din configuratorul 1C 8.x: „Configurare -> Salvare configurație în fișier” sau „Configurare -> livrare configurare -> Creare fișier de livrare și actualizare configurație -> semn „Creare fișier de livrare””.

*.cfu- fișierul conține doar o actualizare de configurare. De exemplu, fișierul 1cv8.cfu. Este imposibil să creați o configurație din acest fișier, deoarece conține doar diferențele dintre noua configurație și cea anterioară. Este creat din configuratorul 1C 8.x: „Configurare -> Livrare configurație -> Creare fișier de livrare și actualizare de configurare -> semn „Creează fișier de actualizare de configurare”.

*.dt- fisierul contine configuratia impreuna cu baza de date a utilizatorilor. Acesta este un format de arhivă specializat 1C 8. Este creat din configuratorul 1C 8.x: „Administrare -> Descărcați baza de informații”.

*.epf (*.erf) – fișier de prelucrare externă (raport). Orice procesare (raport) din configurație poate fi salvată extern. Se creează din configuratorul 1C 8.x: „Configurație -> Deschideți configurația -> ajungeți la prelucrarea dorită (raport) -> selectați cu butonul din dreapta al mouse-ului -> Salvare ca procesare externă, raportare...”.

*.1cd- fișier complet de bază de date. Reprezentarea implicită a numelui: 1Cv8.1CD. Include configurație, bază de date, setări utilizator. Deschis de platforma 1C 8.x. Este creat pentru dezvoltarea unei noi configurații automat făcând clic pe butonul „Adăugați” la selectarea articolului „Creează o nouă bază de informații”.

*.log, *.lgf, *.lgp, *.elf- fișiere jurnal care colectează informații (date de înregistrare) în 1C 8.0 8.1, 8.2, 8.3.

*. cdn- fișier cu această extensie ( 1Cv8.cdn) este folosit pentru a bloca manual sau automat baza de date 1C Enterprise a opta versiune.

*.mxl- se folosesc fisiere de formulare tiparite, inclusiv in 1C. Ambele sunt forme tipărite de documente, directoare, rapoarte și diverse dispozitive de stocare a datelor pentru diferite clasificatoare. Se deschide prin Configurator sau în modul 1C:Enterprise prin „fișier -> deschide”. Este creat exact în același mod: în modul Configurator sau în 1C:Enterprise prin „fișier -> nou”. De asemenea, fișierele cu astfel de extensii pot servi drept reguli de transfer, de exemplu, de la 1C 7.7 la 8.2 (acc77_82.xml și procesare auxiliară exp77_82.ert) - de obicei sunt localizate în folderul ExtForms.

*.efd- acesta este un fișier de arhivă 1C, folosit pentru a seta configurația. Conține fie o configurație 1s, fie o actualizare a acesteia. Este lansat folosind fișierul executabil auxiliar setup.exe (ar trebui să fie în același folder).

*.mft– un fișier auxiliar pentru crearea unei configurații dintr-un șablon. Conține informații de configurare, descriere, căi, nume. Este folosit direct de platforma în sine atunci când se creează o bază de informații 1C dintr-un șablon.

*.grs- fisiere de scheme grafice in format specializat 1C. Se deschide prin Configurator sau în modul 1C:Enterprise prin „fișier -> deschide”. Este creat exact în același mod: în modul Configurator sau în 1C:Enterprise prin „fișier -> nou”.

*.geo- dosare de scheme geografice în format specializat 1C. Se deschide prin Configurator sau în modul 1C:Enterprise prin „fișier -> deschide”. Este creat exact în același mod: în modul Configurator sau în 1C:Enterprise prin „fișier -> nou”.

*.Sf- fișiere șablon text. Folosit în principal de dezvoltatorii 1C.

*.pff- fișier cu măsurătorile de performanță salvate. Folosit de administratorii de sistem și specialiștii 1C.

Dacă computerul dvs. are program antivirus poate sa scanează toate fișierele de pe computer, precum și fiecare fișier individual. Puteți scana orice fișier făcând clic dreapta pe fișier și selectând opțiunea corespunzătoare pentru a scana fișierul pentru viruși.

De exemplu, în această figură, fișier my-file.erf, apoi trebuie să faceți clic dreapta pe acest fișier, iar în meniul fișierului selectați opțiunea „scanați cu AVG”. Selectarea acestei opțiuni va deschide AVG Antivirus și va scana fișierul pentru viruși.


Uneori poate rezulta o eroare instalare incorectă a software-ului, care se poate datora unei probleme care a apărut în timpul procesului de instalare. Poate interfera cu sistemul dvs. de operare asociați fișierul dvs. ERF cu aplicația software corectă, influențând așa-zisa „asociații de extensii de fișiere”.

Uneori simplu reinstalând BioWare Neverwinter Nights vă puteți rezolva problema conectând corect ERF la BioWare Neverwinter Nights. În alte cazuri, pot apărea probleme de asociere a fișierelor programare software proastă dezvoltator și poate fi necesar să îl contactați pentru asistență suplimentară.


Sfat:Încercați să actualizați BioWare Neverwinter Nights la cea mai recentă versiune pentru a vă asigura că aveți cele mai recente remedieri și actualizări.


Acest lucru poate părea prea evident, dar adesea fișierul ERF însuși poate cauza problema. Dacă ați primit un fișier printr-un atașament de e-mail sau l-ați descărcat de pe un site web și procesul de descărcare a fost întrerupt (de exemplu, de o întrerupere a curentului sau de un alt motiv), fișierul poate fi corupt. Dacă este posibil, încercați să obțineți o copie nouă a fișierului ERF și încercați să o deschideți din nou.


Cu grija: Un fișier corupt poate provoca daune colaterale programelor malware anterioare sau preexistente de pe computerul dvs., așa că este important să vă mențineți computerul la zi cu un antivirus actualizat.


Dacă fișierul dvs. ERF asociat cu hardware-ul de pe computer pentru a deschide fișierul de care este posibil să aveți nevoie actualizați driverele dispozitivului asociat cu acest echipament.

Această problemă asociate de obicei cu tipuri de fișiere media, care depind de deschiderea cu succes a hardware-ului din interiorul computerului, de exemplu, placa de sunet sau placa video. De exemplu, dacă încercați să deschideți un fișier audio, dar nu îl puteți deschide, poate fi necesar actualizați driverele plăcii de sunet.


Sfat: Dacă atunci când încercați să deschideți un fișier ERF, primiți Mesaj de eroare legat de fișierul .SYS, problema ar putea fi probabil asociate cu drivere de dispozitiv corupte sau învechite care trebuie actualizate. Acest proces poate fi facilitat prin utilizarea unui software de actualizare a driverelor, cum ar fi DriverDoc.


Dacă pașii nu au rezolvat problemași încă mai aveți probleme la deschiderea fișierelor ERF, acest lucru se poate datora lipsa resurselor disponibile de sistem. Unele versiuni de fișiere ERF pot necesita o cantitate semnificativă de resurse (de exemplu, memorie/RAM, putere de procesare) pentru a se deschide corect pe computer. Această problemă este destul de comună dacă utilizați hardware de computer destul de vechi și un sistem de operare mult mai nou în același timp.

Această problemă poate apărea atunci când computerul are dificultăți în îndeplinirea unei sarcini, deoarece sistemul de operare (și alte servicii care rulează în fundal) pot consumă prea multe resurse pentru a deschide fișierul ERF. Încercați să închideți toate aplicațiile de pe computer înainte de a deschide BioWare Entity Resource File. Eliberând toate resursele disponibile pe computer, veți asigura cele mai bune condiții posibile pentru a încerca să deschideți fișierul ERF.


daca tu a finalizat toți pașii de mai susși fișierul dvs. ERF încă nu se va deschide, poate fi necesar să rulați upgrade hardware. În majoritatea cazurilor, chiar și atunci când utilizați versiuni hardware mai vechi, puterea de procesare poate fi totuși mai mult decât suficientă pentru majoritatea aplicațiilor utilizatorilor (cu excepția cazului în care faceți o mulțime de lucrări care necesită mult CPU, cum ar fi randarea 3D, modelarea financiară/științifică sau munca multimedia intensivă). ). În acest fel, este probabil ca computerul dvs. să nu aibă suficientă memorie(numit mai frecvent „RAM” sau RAM) pentru a efectua sarcina de a deschide un fișier.

Structura internă a fișierului de configurare (*.cf) nu este un secret. Oameni amabili l-au demontat cu mult timp în urmă și au creat multe utilități interesante care vă permit să lucrați cu acest format. Există o duzină (dacă nu mai multe) publicații interesante pe Infostart care citesc într-un fel sau altul conținutul fișierelor *.cf, așa că acest subiect nu este deloc nou.

Cu toate acestea, există, din păcate, foarte puțină documentație bună și solidă pentru acest format. Pentru a scrie acest articol, am fost sfătuit de unul foarte respectat, care a descris în detaliu, în toate detaliile, structura formatului de fișier 1C:Enterprise IS (*.1CD).

Acel articol, mi se pare, a devenit catalizatorul pentru o serie de dezvoltări create de alți autori. Deschiderea și disponibilitatea informațiilor au stimulat activitatea creativă a autorilor, iar întreaga comunitate a primit o serie de instrumente excelente pentru lucrul cu bazele de date de fișiere 1C.

cred ca descriere detaliata Formatul CF va fi, de asemenea, de interes pentru mulți autori și poate vom avea ocazia să vedem o mulțime de noi dezvoltări interesante pe tema fișierelor de configurare.

fundal

După cum am menționat mai sus, structura formatului este cunoscută de mult și există informații despre structura acestuia pe net (deși destul de puține). Aveam nevoie de această informație În dezvoltarea programului, în timp ce lucram la care, m-am bazat pe următoarele materiale:

  • , autor
  • http://www.richmedia.us/post/2011/01/18/cf-file-format-1c-8-compatible.aspx , dacă nu mă înșel, autorul -
  • , autor

Terminologie

Să trecem direct la subiectul discuției noastre.

Pentru a puncta i-urile, să definim numele formatului în sine.

În primul rând, nu numai fișierele de configurare sunt create în acest format, ci și fișierele de procesare și rapoarte externe. Pe Internet, am dat peste numele Compound-file. Poate că este bine stabilit printre vechii 1C, dar nu prea îmi place.

Îmi propun în cadrul acestui articol să numim acest format „ recipient". Dacă publicul respectat solicită în comentarii nume corect, voi fi foarte fericit.

Ne uităm înăuntru

Unitatea logică de stocare a datelor din interior recipient este o document . Un document este un set complet semnificativ de date care poate fi citit și interpretat într-un fel. Nu folosesc termenul " fişier”, pentru că voi păstra acest nume pentru o altă entitate, despre care ceva mai târziu.

Deci, în termeni generali, un fișier CF (EPF/ERF) este recipient , care stochează documentație .

Fiecare document din interiorul unui container poate fi împărțit în blocuri . Unitatea fizică minimă de stocare a datelor este bloc, dar o unitate logică semnificativă este document. Cu alte cuvinte, documentele din interiorul containerului pot sta sub formă de bucăți împrăștiate ( blocuri) și pentru a citi conținutul documentului, toate piesele acestuia trebuie colectate și combinate.

Structura containerului

Containerul include următoarele părți (în ordine):

  1. Antetul containerului
    1. Adresa primului bloc gol unde pot fi adăugate date
    2. Dimensiunea implicită a blocului
    3. Numărul de fișiere dintr-un container
  2. Documentul TOC al containerului
  3. De fapt, datele care sunt enumerate în cuprinsul

Pentru a citi conținutul unui container, trebuie să citiți documentul cuprins. Cu toate acestea, din moment ce, document este format din blocuri, apoi mai întâi trebuie să învățați cum să asamblați un document complet din aceleași blocuri.

Structura blocului

Blocul este format dintr-un antet și un corp. Antetul indică dimensiunea totală a întregului document, dimensiunea blocului curent și adresa (poziția în fișier) blocului următor. Imediat după antet este corpul blocului - de fapt, datele de care avem nevoie. Corpul blocului are exact lungimea (în octeți) specificată în antet.

În interiorul containerului, ici și colo, există o constantă magică care denotă un anumit „gol” - acesta este numărul 0x7fffffff.

Când asamblam un document din blocuri, căutăm în antet adresa blocului următor. Dacă este egal cu 0x7fffffff, atunci nu există blocul „următorul”, acesta este ultimul.

Constanta 0x7fffffff este valoarea lui INT_MAX, adică. valoarea maximă a unui număr întreg cu semn de 4 octeți.

„Fișiere” logice

Am menționat că termenul fişier O voi păstra pentru vremuri mai bune. Vremurile alea sunt aici :)

Toată configurația este stocată într-un container în formular fișiere. Dacă ne amintim de cursul școlar de informatică, atunci ne vom aminti că „dosarul”, ni s-a spus, este numit document.

Un fișier diferă de un „document” prin faptul că are un nume și se poate face referire prin acel nume. Dacă analizăm conținutul configurației și construim un arbore de metadate, vom găsi o mulțime de referințe la alte fișiere în interiorul fișierelor. Procedura de citire a configurației operează pe nume fișiereși faceți referire la ei după nume.

Pentru a rezuma, putem spune următoarele: recipientul conține diferite documentație, dar unele dintre ele au un nume. Se numesc astfel de documente fișiere”și nu sunt oficiale, ci aplicate direct. Exact fișiere stocați informații despre metadatele de configurare.

Componentele fișierului

Fiecare fișier conține două documente:

  1. Un document de atribut care conține numele fișierului și datele de creare/modificare
  2. Documentul de conținut, care conține corpul propriu-zis al fișierului

Acum că toate componentele au fost exprimate, rămâne de luat în considerare, poate, cel mai important document container - documentul de cuprins, care indică locația tuturor fișierelor container. După cum sa menționat mai sus, cuprinsul documentului este primul document al containerului și vine imediat după antetul containerului.

  1. Adresa (offset în fișier) a documentului de atribut
  2. Adresa (offset în fișier) a documentului de conținut
  3. Numărul 0x7fffffff (marcator de sfârșit de înregistrare).

Vă reamintesc că fiecare document poate fi împărțit în blocuri (fragmentat). Algoritmul pentru asamblarea unui document din blocuri va fi discutat mai jos.

Intrarea din cuprins este 2 numere semnificative INT32. Primul număr este adresa documentului cu atributele fișierului. La această adresă, vom ajunge la începutul blocului 1 al documentului de atribut. Din documentul de atribute putem afla numele fișierului. Al doilea număr este adresa documentului a conținutului fișierului. La această adresă vom ajunge la începutul blocului 1 al documentului de conținut, de unde vom citi direct datele fișierului.

Caracteristici de compresie a datelor.

Un container poate conține o mare varietate de fișiere. De regulă, acestea sunt fișiere text codificate în UTF-8. Cu toate acestea, pot exista și alte fișiere container printre fișierele container. Cel mai simplu mod de a face o analogie cu sistemul de fișiere. Un container este un director, iar fișierele din interiorul containerului sunt conținutul acestuia. Un director poate conține alte directoare.

Directorul rădăcină al acestui „sistem de fișiere” este fișierul *.CF însuși. În interiorul acestuia pot exista și alte fișiere container, de fapt - directoare imbricate care sunt citite exact după același algoritm și au exact aceeași structură.

Cu toate acestea, există o particularitate a directorului rădăcină. Tot documente de conținut fișierele din directorul rădăcină sunt comprimate folosind algoritmul Deflate. Conținutul fișierelor din directoare imbricate nu mai este comprimat. Pur și simplu, la nivelul superior al fișierului container, corpurile tuturor fișierelor sunt comprimate, dar dacă fișierul din interiorul containerului este el însuși un container, atunci fișierele din interiorul acestuia vor fi deja scrise în forma lor pură (fără compresie).

Lanț de blocuri libere

Ca urmare a ștergerii oricăror date din container, în acesta pot apărea spații goale. Aceste locuri libere sunt conectate într-un lanț și formează un fel de „document”, ale cărui date lipsesc. Cu alte cuvinte, blocurile gratuite sunt legate între ele în același mod în care blocurile de documente sunt legate între ele. Adresa primului bloc liber este indicată chiar la începutul antetului containerului. Dacă adresa unui bloc liber este egală cu INT_MAX, atunci aceasta înseamnă că nu există blocuri libere (goale) în mijlocul containerului.

Scurt rezumat al părții teoretice

  1. Fișier CF(EPF/ERF) scris în format „container”.
  2. Containerul începe cu antet
  3. Tot conținutul containerului, cu excepția antetului, este scris ca „documente”
  4. Documentul poate fi împărțit în blocuri
  5. Documentul începe cu un antet de bloc, care vă spune cum să citiți întregul document
  6. Imediat după titlul containerului apare documentul cuprins
  7. Cuprinsul este un set de intrări care indică „ fișiere» în interiorul recipientului
  8. Fiecare fișier este format din două documente - un document de atribut, unde este indicat numele acestui fișier și un document de conținut, unde, de fapt, se află datele fișierului.
  9. Fiecare intrare de cuprins conține 2 adrese. Prima este adresa documentului cu atributele fișierului, a doua este adresa documentului de conținut.
  10. Un container poate conține containere imbricate (cum ar fi folderele imbricate)
  11. Fișierele din interiorul containerului rădăcină sunt comprimate folosind algoritmul Deflate, fișierele din interiorul containerelor imbricate sunt scrise fără compresie.

Să simțim deja octeții

Așadar, este timpul să luăm în considerare modul în care toate entitățile menționate mai sus sunt aranjate în mod specific.

Principala modalitate de a citi datele dintr-un container este citirea lanțului de blocuri care alcătuiesc anumite documente. Se pare că ar fi corect să începem cu principiul citirii documentelor bloc.

Citirea unui document în blocuri

Fiecare document dintr-un container trebuie să înceapă cu un antet de bloc. În acest caz, documentul poate fi împărțit în mai multe blocuri. Pentru a citi un document este necesar să-l „colegi” din blocuri.

Deci, antetul blocului este un șir de 31 de octeți. Această linie arată astfel:

[Dimensiunea întregului document][Spațiu][Dimensiunea curentă a blocului][Spațiu][Adresa blocului următor][Spațiu] , unde:

  • CRLF - flux de linie standard Windows, pereche de caractere \r\n (0x0D,0x0A)
  • Mărimea întregului document este lungimea totală a documentului în octeți. Scris ca o reprezentare șir a unui număr hexadecimal. Lungime - 8 octeți.
  • Spațiu - spațiu. Simbol 0x20
  • Mărimea blocului curent este lungimea corpului blocului în octeți. Este, de asemenea, scris ca o reprezentare șir a numărului INT32 în format hex. Dacă documentul constă dintr-un singur bloc, atunci dimensiunea întregului document este fie mai mică, fie aceeași cu dimensiunea blocului curent (ceea ce este logic)
  • Adresa blocului următor - adresa la care se află blocul următor al documentului. Dacă adresa următorului bloc este egală cu INT_MAX, atunci aceasta înseamnă că nu există niciun bloc următor. Adresa blocului următor este, de asemenea, scrisă ca o reprezentare șir a numărului.

Imediat după antetul blocului este corpul blocului, care are lungimea specificată în câmpul „Dimensiunea curentă a blocului”.

Luați în considerare figura: lungimea întregului document este de 0x54 de octeți, acești 0x54 de octeți sunt evidențiați cu roșu. Acestea sunt datele documentului. Lungimea blocului este de 0x200 de octeți, adică mai mare decât lungimea documentului în sine. Din acest motiv, restul datelor blocului sunt „zero” de spațiu neutilizat. Octeții semnificativi sunt cei marcați cu un chenar roșu.

Dacă lungimea documentului este mai mare decât lungimea blocului, atunci trebuie citit următorul bloc. Dacă în câmpul „Adresa următorului bloc” este scrisă o altă valoare decât 0x7fffffff, atunci este necesar să citiți blocul curent, apoi să mergeți la această adresă și să citiți un alt bloc. Dacă în acest bloc este setată și adresa următorului bloc, atunci trebuie să mergeți și acolo. Astfel, se formează un „lanț” de blocuri care alcătuiește documentul.

Citirea trebuie continuată până când se întâlnește valoarea 0x7fffffff în câmpul „Adresa blocului următor” sau până când se citește numărul de octeți specificat în câmpul „Dimensiunea întregului document”.

Câmpul „Dimensiunea întregului document” are sens doar pentru primul bloc. În toate blocurile ulterioare ale documentului, acesta are valoarea 0x00000000.

Format antet container

Antetul containerului are 16 octeți și constă din următoarele câmpuri:

Camp

Explicaţie

Adresa primului bloc liber

INT32 (4 octeți)

Offset de la care începe lanțul de blocuri libere

Dimensiunea implicită a blocului

INT32 (4 octeți)

Blocul poate avea o lungime arbitrară, dar valoarea implicită poate fi utilizată pentru a adăuga blocuri noi, de ex.

Câmp cu scop necunoscut (vezi comentariile la articol) Adesea la fel cu numărul de fișiere din container

INT32 (4 octeți)

Un număr care reflectă o anumită valoare, de obicei coincide cu numărul de fișiere din container, însă, colegii din comentarii consideră că acest lucru nu este în întregime adevărat. Acest număr nu afectează în niciun fel algoritmul de interpretare a containerului, poate fi ignorat.

câmp rezervat

INT32 (4 octeți)

Întotdeauna 0 (întotdeauna?)

Formatul de introducere a documentului de cuprins

Format de document cu atribut de fișier

Documentul de atribut descrie numele fișierului și data la care a fost creat/modificat.

Camp

Explicaţie

Timpul de creare a fișierului

UINT64 (8 octeți)

Timpul de creare a fișierului exprimat în intervale de 100 de microsecunde de la începutul erei noastre (01.01.0001 00:00:00)

Ora de modificare a fișierului

UINT64 (8 octeți)

În mod similar

câmp rezervat

INT32 (4 octeți)

Este întotdeauna 0. Poate că acestea sunt steaguri de atribute, ceva de genul „numai în citire”, „ascuns”, etc. Cu toate acestea, nu am văzut fișiere în care acest câmp ar fi diferit de zero.

Nume de fișier

Șir în format UTF-16

Ocupă întregul corp rămas al documentului (minus 2 date și un câmp de suport)

Principiul citirii containerului

  1. Asamblați un document cu cuprins din blocuri și citiți-l
  2. Parcurgeți toate intrările din documentul TOC și citiți documentele de atribute (numele) fișierelor container
  3. Potriviți fiecare nume primit cu adresa documentului de conținut
  4. Rezultatul este corespondența „Nume fișier” -> „Adresă conținut”

Citirea fișierelor

  1. Obțineți adresa documentului de conținut din cuprinsul după numele fișierului
  2. Asamblați documentul de conținut din blocuri
  3. Dacă este containerul rădăcină, atunci despachetați documentul de conținut (este comprimat)
  4. Gata. Rezultatul sunt datele fișierului căutat.

Actualizare din 25.02.2014

In cele din urma

Acest articol nu este adevărul suprem, probabil că conține chiar erori. Cu toate acestea, dacă acest subiect vă interesează, atunci sper că acest articol vă va ajuta în implementarea proiectelor dumneavoastră. Noroc!

Ai întrebări?

Raportați o greșeală de scriere

Text care urmează să fie trimis editorilor noștri: