Casa / Guadagni / Apri cfr. Installazione della configurazione da un file CF. Principio di lettura del contenitore

Apri cfr. Installazione della configurazione da un file CF. Principio di lettura del contenitore

Speriamo di averti aiutato a risolvere il tuo problema con il file CF. Se non sai dove scaricare un'applicazione dal nostro elenco, fai clic sul collegamento (questo è il nome del programma) - Troverai informazioni più dettagliate su dove scaricare la versione di installazione sicura dell'applicazione richiesta.

Una visita a questa pagina dovrebbe aiutarti a rispondere specificamente a queste domande o a domande simili:

  • Come aprire un file con l'estensione CF?
  • Come convertire un file CF in un altro formato?
  • Qual è l'estensione del formato file CF?
  • Quali programmi supportano il file CF?

Se, dopo aver visionato i materiali in questa pagina, non hai ancora ricevuto una risposta soddisfacente a nessuna delle domande presentate sopra, significa che le informazioni qui presentate sul file CF sono incomplete. Contattaci utilizzando il modulo di contatto e scrivi quali informazioni non hai trovato.

Cos'altro potrebbe causare problemi?

Potrebbero esserci più motivi per cui non è possibile aprire un file CF (non solo la mancanza di un'applicazione appropriata).
Innanzitutto- il file CF può essere collegato in modo incorretto (incompatibile) con l'applicazione installata per supportarlo. In questo caso, devi modificare tu stesso questa connessione. Per fare ciò, fai clic con il pulsante destro del mouse sul file CF che desideri modificare, fai clic sull'opzione "Aprire con" e quindi seleziona il programma installato dall'elenco. Dopo questa azione, i problemi con l'apertura del file CF dovrebbero scomparire completamente.
In secondo luogo- il file che desideri aprire potrebbe essere semplicemente danneggiato. In questo caso è meglio cercare una nuova versione del file o scaricarlo di nuovo dalla stessa fonte (forse, per qualche motivo, durante la sessione precedente, la scaricazione del file CF non è terminata e non si apre correttamente) .

Vuoi aiutare?

Se disponi di ulteriori informazioni sull'estensione del file CF, ti saremo grati se le condividerai con gli utenti del nostro sito. Utilizza il modulo sottostante e inviaci le tue informazioni sul file CF.

In questo articolo ti insegnerò come creare un file cf di configurazione 1C. Cos'è questo file e per quali scopi è necessario? Rispondiamo alla prima domanda: la configurazione 1C viene salvata in questo file. Per quali scopi viene utilizzato più spesso? Per caricare la configurazione salvata in un database vuoto. Ma ce n’è un’altra, chiamiamola “applicazione non standard”.

Utilizzando il file cf è possibile aggiornare la configurazione 1C. Usando questo file, puoi passare da una versione all'altra di più versioni contemporaneamente, invece di aggiornarle una per una utilizzando i file cfu. Maggiori informazioni sull'aggiornamento passo passo della configurazione 1C nel mio articolo:

E in questo articolo impareremo come creare un file cf. Per fare ciò è necessario effettuare il login.

Tieni presente che l'utente con cui accedi al configuratore del database 1C deve avere i diritti per lavorare con il configuratore.

Per creare un file cf, è necessario aprire la configurazione se è chiusa. Molto spesso può essere chiuso. Per aprirlo, fare clic sul pulsante – apri configurazione.

La configurazione si è aperta, a sinistra puoi vedere un elenco di metadati.

Se sei andato al configuratore e hai visto un elenco di metadati sulla sinistra, significa che la configurazione è già aperta e non è necessario aprirla. Solitamente, quando è aperto, è attivo il pulsante “Chiudi configurazione”.

Se questo pulsante è attivo, ma non è presente un elenco di metadati, significa semplicemente che non viene visualizzato.

Andiamo al menu di configurazione, nel quale selezioniamo la voce “Salva configurazione su file”

Selezioniamo la directory in cui la salveremo, scriviamo il nome del file. Di solito scrivo per nome della configurazione e numero di versione.

Tutti i file vengono salvati.

Ora con il suo aiuto puoi aggiornare configurazioni simili.

Puoi guardare il processo di creazione di un file CF “dal vivo” nel video qui sotto:


Come aggiornare la configurazione 1C utilizzando un file cf, leggi il mio prossimo articolo:

Impara le basi della configurazione in 1C e impara a programmare in "1C: Enterprise" con l'aiuto dei miei libri: e "Nozioni di base sullo sviluppo in 1C: Taxi"

Impara a programmare in 1C nel mio libro “Programmare in 1C in 11 passi”

  1. Il libro è scritto in un linguaggio chiaro e semplice, per un principiante.
  2. Impara a comprendere l'architettura 1C;
  3. Inizierai a scrivere codice nel linguaggio 1C;
  4. Padroneggiare le tecniche di programmazione di base;
  5. Consolida le tue conoscenze con l'aiuto di un libro di problemi;

Un'eccellente guida allo sviluppo in un'applicazione 1C gestita, sia per sviluppatori alle prime armi che per programmatori esperti.

  1. Linguaggio di presentazione molto accessibile e comprensibile
  2. Il libro viene inviato via email in formato PDF. Può essere aperto su qualsiasi dispositivo!
  3. Comprendere l'ideologia di un'applicazione 1C gestita
  4. Scopri come sviluppare un'applicazione gestita;
  5. Impara a sviluppare moduli 1C gestiti;
  6. Sarai in grado di lavorare con gli elementi di base e necessari dei moduli gestiti
  7. La programmazione in un'applicazione gestita diventerà chiara

Codice promozionale per uno sconto del 15% - 48PVXHeYu


Se questa lezione ti ha aiutato a risolvere qualche problema, ti è piaciuta o l'hai trovata utile, allora puoi sostenere il mio progetto donando qualsiasi importo:

Puoi pagare manualmente:

Yandex.Money - 410012882996301
Web Money - R955262494655

Unisciti ai miei gruppi.

Nelle lezioni precedenti abbiamo accennato al fatto che la configurazione può essere importata da un file con estensione .CF. Ad esempio, un'azienda amichevole potrebbe fornirti un file di questo tipo in modo che tu possa installare l'ultima versione della configurazione e sperimentarla. In un tale sviluppo di eventi, è necessario agire come segue.

Innanzitutto, nella finestra che già conosci che appare dopo aver avviato il programma, fai clic sul pulsante Aggiungere.

Nella finestra successiva, seleziona Creazione di una nuova base informativa.

Nella finestra successiva è necessario selezionare la voce Crea un'infobase senza configurazione per sviluppare una nuova configurazione o caricare un'infobase precedentemente scaricata.

Nella finestra successiva, indicare il nome del database.

Dopo aver completato le azioni elencate nell'elenco basi informative apparirà un nuovo database vuoto. Ora devi selezionarlo e fare clic sul pulsante Configuratore. Si aprirà la finestra del configuratore.

Quando apri la finestra per la prima volta, è vuota e ora dobbiamo eseguire alcuni passaggi per caricare il file CF che hai nella configurazione vuota.

Esegui il comando del menu Configurazione > Apri configurazione. La finestra del programma cambierà: l'albero di configurazione si aprirà nella sua parte sinistra. Non ci interessa ancora. Ora puoi eseguire il comando Configurazione > Carica configurazione da file. Questo comando permette di sostituire completamente la configurazione esistente (nel nostro caso vuota) con la configurazione salvata nel file CF. Nella finestra che appare, è necessario specificare il percorso del file in cui è memorizzata la configurazione che si desidera caricare.

Adesso non ti resta che premere un pulsante Aprire e attendere che il programma carichi la configurazione. L'operazione potrebbe richiedere molto tempo. Se il sistema ti pone domande (in particolare, sull'aggiornamento della configurazione del database, sull'accettazione delle modifiche nella struttura delle informazioni di configurazione), rispondi affermativamente.

Nell'angolo in basso a sinistra della finestra del programma vengono visualizzati i messaggi di servizio sullo stato di avanzamento dell'aggiornamento della configurazione. Una volta completato l'aggiornamento (i messaggi di servizio relativi al caricamento del database verranno interrotti), è possibile chiudere la finestra del configuratore e avviare l'esecuzione del programma in modalità utente. Tuttavia, in pratica l'installazione base informativa l'uso di uno dei metodi sopra indicati di solito non limita le cose che devono essere fatte prima di eseguire la configurazione per la prima volta. In particolare, non dobbiamo dimenticare gli aggiornamenti.

*.cf- il file contiene solo la configurazione (codice e struttura) senza dati utente. Creato dal configuratore 1C 8.x: “Configurazione -> Salva configurazione su file” oppure “Configurazione -> Configurazione di consegna -> Crea file di consegna e aggiorna configurazione -> attributo “Crea file di consegna””.

*.cfu- il file contiene solo un aggiornamento della configurazione. Ad esempio file 1cv8.cfu. È impossibile creare una configurazione da questo file poiché contiene solo differenze tra la nuova configurazione e quella precedente. Creato dal configuratore 1C 8.x: “Configurazione -> Consegna configurazione -> Crea file consegna e aggiornamento configurazione -> flag “Crea file aggiornamento configurazione””.

*.dt- il file contiene la configurazione insieme al database utenti. Questo è un formato di archivio specializzato 1C 8. Viene creato dal configuratore 1C 8.x: "Amministrazione -> Carica infobase".

*.epf (*.erf) – file di elaborazione esterna (report). Qualsiasi elaborazione (report) dalla configurazione può essere salvata esternamente. Creato dal configuratore 1C 8.x: “Configurazione -> Apri configurazione -> vai all'elaborazione desiderata (report) -> seleziona con il tasto destro del mouse -> Salva come elaborazione esterna, report...”.

*.1cd– un file di database completo. Rappresentazione del nome predefinita: 1Cv8.1CD. Include configurazione, database, impostazioni utente. Si apre con la piattaforma 1C 8.x. Viene creato per sviluppare una nuova configurazione in modo automatico cliccando il pulsante “Aggiungi” quando si seleziona la voce “Creazione di una nuova base informativa”.

*.log, *.lgf, *.lgp, *.elf- file di registro che raccolgono informazioni (dati di registro) in 1C 8.0 8.1, 8.2, 8.3.

*. cdn- file con questa estensione ( 1Cv8.cdn) viene utilizzato per il blocco manuale o automatico del database 1C Enterprise ottava versione.

*.mxl- vengono utilizzati file di moduli stampati, anche in 1C. Sono entrambi moduli stampati di documenti, libri di consultazione, rapporti e vari dispositivi di archiviazione dati per vari classificatori. Si apre tramite il Configuratore o in modalità 1C:Enterprise tramite “file -> apri”. Si crea allo stesso modo: in modalità Configuratore o in 1C:Enterprise tramite “file -> nuovo”. Inoltre, i file con tali estensioni possono fungere da regole di trasferimento, ad esempio da 1C 7.7 a 8.2 (acc77_82.xml e elaborazione ausiliaria exp77_82.ert) - di solito si trovano nella cartella ExtForms.

*.efd- questo è un file di archivio 1C, utilizzato per installare la configurazione. Contiene la configurazione 1C o un suo aggiornamento. Viene avviato utilizzando il file eseguibile ausiliario setup.exe (deve trovarsi nella stessa cartella).

*.mft– file ausiliario per creare una configurazione da un modello. Contiene informazioni di configurazione, descrizione, percorso, nome. Viene utilizzato direttamente dalla piattaforma stessa durante la creazione di una base informativa 1C da un modello.

*.gr- file di diagrammi grafici in un formato specializzato 1C. Si apre tramite il Configuratore o in modalità 1C:Enterprise tramite “file -> apri”. Si crea allo stesso modo: in modalità Configuratore o in 1C:Enterprise tramite “file -> nuovo”.

*.geo- file di diagrammi geografici in un formato specializzato 1C. Si apre tramite il Configuratore o in modalità 1C:Enterprise tramite “file -> apri”. Si crea allo stesso modo: in modalità Configuratore o in 1C:Enterprise tramite “file -> nuovo”.

*.st- file modello di testo. Utilizzato principalmente dagli sviluppatori 1C.

*.pff- un file con le misurazioni delle prestazioni salvate. Utilizzato dagli amministratori di sistema e dagli specialisti 1C.

La struttura interna del file di configurazione (*.cf) non è un segreto. Brave persone lo hanno smontato molto tempo fa e hanno creato molte utilità interessanti che ti consentono di lavorare con questo formato. Su Infostart ci sono una buona dozzina (se non di più) pubblicazioni interessanti che in un modo o nell'altro leggono il contenuto dei file *.cf, quindi l'argomento non è affatto nuovo.

Tuttavia, sfortunatamente, esiste pochissima documentazione valida e di alta qualità per questo formato. Ho tratto ispirazione per scrivere questo articolo dal mio caro amico, che ha descritto in dettaglio la struttura del formato di sicurezza delle informazioni sui file 1C:Enterprise (*.1CD).

Quell’articolo, mi sembra, divenne un catalizzatore per una serie di sviluppi creati da altri autori. L'apertura e l'accessibilità delle informazioni hanno stimolato l'attività creativa degli autori e l'intera comunità ha ricevuto una serie di strumenti eccellenti per lavorare con i database di file 1C.

Mi sembra che una descrizione dettagliata del formato CF interesserà anche a molti autori, e forse avremo l'opportunità di vedere molti nuovi sviluppi interessanti sul tema dei file di configurazione.

Sfondo

Come accennato in precedenza, la struttura del formato è nota da tempo e si trovano informazioni sulla sua struttura su Internet (anche se piuttosto scarse). Avevo bisogno di queste informazioni Durante lo sviluppo del programma, lavorando sul quale, ho fatto affidamento sui seguenti materiali:

  • , autore
  • http://www.richmedia.us/post/2011/01/18/cf-file-format-1c-8-compatibili.aspx, se non sbaglio l'autore è
  • , autore

Terminologia

Passiamo direttamente all'argomento della nostra discussione.

Per punteggiare le i, decidiamo il nome del formato stesso.

In primo luogo, in questo formato non vengono creati solo i file di configurazione, ma anche i file di reporting ed elaborazione esterni. Su Internet mi sono imbattuto nel nome Compound file. Forse è ben consolidato tra i veterani 1C, ma non mi piace molto.

Nell'ambito di questo articolo, propongo di chiamare questo formato “ contenitore" Se il pubblico rispettato suggerirà il nome corretto nei commenti, ne sarò molto felice.

Guardiamoci dentro

Unità logica di memorizzazione dei dati all'interno contenitore È documento . Un documento è un insieme di dati completo e significativo che può essere letto e interpretato in qualche modo. Non uso specificatamente il termine " file", perché riserverò questo nome ad un'altra entità, di cui parlerò poco dopo.

Quindi, in termini generali, un file CF (EPF/ERF) lo è contenitore , in cui sono archiviati documentazione .

Ogni documento all'interno di un contenitore può essere suddiviso in blocchi . L'unità fisica minima di archiviazione dei dati è bloccare, ma un'unità logica significativa lo è documento. In altre parole, i documenti all'interno del contenitore possono trovarsi sotto forma di pezzi sparsi ( blocchi) e per leggere il contenuto del documento è necessario raccogliere e combinare tutti i suoi pezzi.

Struttura del contenitore

Il contenitore comprende le seguenti parti (in ordine):

  1. Intestazione del contenitore
    1. Indirizzo del primo blocco vuoto in cui possono essere aggiunti i dati
    2. Dimensione del blocco predefinita
    3. Numero di file nel contenitore
  2. Documento sul contenuto del contenitore
  3. I dati effettivi elencati nel sommario

Per leggere il contenuto del contenitore, è necessario leggere il documento del sommario. Tuttavia, da quando documento comprende blocchi, quindi devi prima imparare come assemblare un documento completo da questi stessi blocchi.

Struttura a blocchi

Un blocco è costituito da un'intestazione e da un corpo. L'intestazione indica la dimensione totale dell'intero documento, la dimensione del blocco corrente e l'indirizzo (posizione nel file) del blocco successivo. Subito dopo l'intestazione c'è il corpo del blocco, ovvero i dati di cui abbiamo bisogno. Il corpo del blocco ha esattamente la lunghezza (in byte) specificata nell'intestazione.

All'interno del contenitore qua e là c'è una costante magica che denota un certo "vuoto": questo è il numero 0x7fffffff.

Quando assembliamo un documento da blocchi, guardiamo nell'intestazione l'indirizzo del blocco successivo. Se è uguale a 0x7fffffff, allora non c'è nessun blocco “successivo”, questo è l'ultimo.

La costante 0x7fffffff è il valore di INT_MAX, cioè il valore massimo di un intero con segno a 4 byte.

"File" logici

Ho menzionato il termine " file"Lo conserverò per tempi migliori. Quei tempi sono arrivati ​​:)

L'intera configurazione viene archiviata in un contenitore nel modulo File. Se ricordiamo il corso di informatica scolastica, ricorderemo che un “file”, ci è stato detto, ha un nome documento.

Un file differisce da un "documento" in quanto ha un nome e può essere indicato con tale nome. Se analizziamo il contenuto della configurazione e costruiamo un albero di metadati, troveremo molti riferimenti ad altri file all'interno dei file. La procedura di lettura della configurazione opera sui nomi File e li chiama per nome.

Per riassumere, possiamo dire quanto segue: il contenitore contiene diversi documentazione, ma alcuni di loro hanno un nome. Tali documenti sono chiamati " File“E non sono di natura di servizio, ma di natura applicata direttamente. Esattamente File memorizzare le informazioni sui metadati di configurazione.

Componenti dell'archivio

Ogni file è composto da due documenti:

  1. Documento di attributi che contiene il nome del file e le date di creazione/modifica
  2. Il documento di contenuto che contiene il corpo effettivo del file

Ora che tutti i componenti sono stati annunciati, resta da considerare forse il documento più importante del contenitore: il documento del sommario, che indica la posizione di tutti i file contenitore. Come accennato in precedenza, il documento del sommario è il primo documento del contenitore e viene immediatamente dopo il titolo del contenitore.

  1. Indirizzo (offset file) del documento di attributo
  2. Indirizzo (offset file) del documento di contenuto
  3. Numero 0x7fffffff (marcatore di fine record).

Ti ricordo che ogni documento può essere diviso in blocchi (frammentato). L'algoritmo per assemblare un documento dai blocchi verrà discusso di seguito.

La voce del sommario è un numero significativo 2 INT32. Il primo numero è l'indirizzo del documento sugli attributi del file. Questo indirizzo ci porterà all'inizio del primo blocco del documento degli attributi. Dal documento degli attributi possiamo scoprire il nome del file. Il secondo numero è l'indirizzo del documento con il contenuto del file. A questo indirizzo verremo portati all'inizio del 1° blocco del contenuto del documento, da dove leggeremo direttamente i dati del file.

Caratteristiche della compressione dei dati.

Un contenitore può contenere un'ampia varietà di file. Di norma, si tratta di file di testo codificati UTF-8. Tuttavia, tra i file contenitore potrebbero esserci altri file contenitore. L'analogia più semplice è con un file system. Un contenitore è una directory e i file all'interno del contenitore sono il suo contenuto. Una directory può contenere altre directory.

La directory root di questo "file system" è il file *.CF stesso. Al suo interno possono esserci altri file contenitori, essenzialmente directory annidate, che vengono lette utilizzando esattamente lo stesso algoritmo e hanno esattamente la stessa struttura.

Tuttavia, c'è una particolarità della directory root. Tutto documenti di contenuto i file all'interno della directory root vengono compressi utilizzando l'algoritmo Deflate. Il contenuto dei file all'interno delle directory nidificate non è più compresso. In poche parole, al livello più alto di un file contenitore, i corpi di tutti i file sono compressi, ma se il file all'interno del contenitore è esso stesso un contenitore, i file al suo interno verranno già scritti nella loro forma pura (senza compressione).

Catena di blocchi liberi

La rimozione di dati da un contenitore può comportare la creazione di spazi vuoti. Questi spazi liberi sono collegati in una catena e formano una sorta di “documento”, di cui mancano i dati. In altre parole, i blocchi liberi sono collegati tra loro secondo lo stesso principio con cui sono collegati tra loro i blocchi di documenti. L'indirizzo del primo blocco libero è indicato all'inizio dell'intestazione del contenitore. Se l'indirizzo di un blocco libero è INT_MAX, significa che non ci sono blocchi liberi (vuoti) al centro del contenitore.

Breve riassunto della parte teorica

  1. Il file CF(EPF/ERF) è scritto nel formato “contenitore”.
  2. Il contenitore inizia con un'intestazione
  3. Tutto il contenuto del contenitore, ad eccezione dell'intestazione, è scritto come “documenti”
  4. Il documento può essere suddiviso in blocchi
  5. Il documento inizia con un titolo in blocco, che indica come leggere l'intero documento
  6. Immediatamente dopo il titolo del contenitore c'è un documento con il sommario.
  7. Un sommario è una raccolta di voci che puntano a " File» all'interno del contenitore
  8. Ogni file è composto da due documenti: un documento degli attributi, dove è indicato il nome di questo file, e un documento del contenuto, dove si trovano effettivamente i dati del file.
  9. Ogni voce del sommario contiene 2 indirizzi. Il primo è l'indirizzo del documento sugli attributi del file, il secondo è l'indirizzo del documento sul contenuto.
  10. Un contenitore può contenere contenitori nidificati (come cartelle nidificate)
  11. I file all'interno del contenitore root vengono compressi utilizzando l'algoritmo Deflate, i file all'interno dei contenitori nidificati vengono scritti senza compressione.

Sentiamo già i byte

Quindi, è il momento di considerare come sono strutturate esattamente tutte le entità sopra menzionate.

Il modo principale per leggere i dati da un contenitore è leggere la catena di blocchi che compongono determinati documenti. Sembra che il punto giusto da cui iniziare sia il principio di lettura dei documenti a blocchi.

Leggere un documento in blocchi

Ogni documento in un contenitore deve iniziare con un'intestazione di blocco. In questo caso, il documento può essere suddiviso in più blocchi. Per leggere un documento è necessario “assemblarlo” a blocchi.

Quindi, l'intestazione del blocco è una stringa lunga 31 byte. Questa riga assomiglia a questa:

[Dimensione dell'intero documento] [Spazio] [Dimensione del blocco corrente] [Spazio] [Indirizzo del blocco successivo] [Spazio] , dove:

  • CRLF - avanzamento riga standard di Windows, coppia di caratteri \r\n (0x0D,0x0A)
  • Dimensione intero documento: la lunghezza totale del documento in byte. Scritto come rappresentazione di stringa di un numero esadecimale. Lunghezza: 8 byte.
  • Spazio - spazio. Simbolo 0x20
  • La dimensione del blocco corrente è la lunghezza del corpo del blocco in byte. Viene anche scritto come rappresentazione di stringa di un numero INT32 in formato esadecimale. Se il documento è costituito da un singolo blocco, la dimensione dell'intero documento è inferiore o uguale alla dimensione del blocco corrente (il che è logico)
  • Indirizzo del blocco successivo: l'indirizzo in cui si trova il blocco successivo del documento. Se l'indirizzo del blocco successivo è INT_MAX, significa che non esiste alcun blocco successivo. Anche l'indirizzo del blocco successivo viene scritto come rappresentazione di stringa di un numero.

Immediatamente dopo l'intestazione del blocco c'è il corpo del blocco, che ha la lunghezza specificata nel campo "Dimensione blocco corrente".

Diamo un'occhiata all'immagine: la lunghezza dell'intero documento è 0x54 byte, questi 0x54 byte sono evidenziati con una cornice rossa. Questi sono i dati del documento. La lunghezza del blocco è 0x200 byte, cioè più lungo della lunghezza del documento stesso. Per questo motivo i dati rimanenti nel blocco costituiscono degli "zeri" di spazio inutilizzato. I byte significativi sono quelli contrassegnati da una cornice rossa.

Se la lunghezza del documento è maggiore della lunghezza del blocco, è necessario leggere il blocco successivo. Se nel campo "Indirizzo del blocco successivo" viene scritto un valore diverso da 0x7fffffff, è necessario leggere il blocco corrente, quindi andare a questo indirizzo e leggere un altro blocco. Se questo blocco contiene anche l'indirizzo del blocco successivo, allora devi andare anche lì. Si forma così una “catena” di blocchi che compongono il documento.

La lettura deve continuare finché non viene incontrato il valore 0x7fffffff nel campo “Indirizzo del blocco successivo” oppure finché non viene letto il numero di byte specificato nel campo “Dimensione dell'intero documento”.

Il campo “Dimensione intero documento” è significativo solo per il primo blocco. In tutti i blocchi successivi del documento ha il valore 0x00000000.

Formato dell'intestazione del contenitore

L'intestazione del contenitore è lunga 16 byte ed è composta dai seguenti campi:

Campo

Spiegazione

Indirizzo del primo blocco libero

INT32 (4 byte)

L'offset in corrispondenza del quale inizia la catena di blocchi liberi

Dimensione del blocco predefinita

INT32 (4 byte)

Un blocco può avere qualsiasi lunghezza, ma la lunghezza predefinita può essere utilizzata, ad esempio, per aggiungere nuovi blocchi.

Campo con scopo sconosciuto (vedi commenti all'articolo) Spesso coincide con il numero di file nel contenitore

INT32 (4 byte)

Un numero che riflette un certo valore, di solito coincide con il numero di file nel contenitore, tuttavia, i colleghi nei commenti ritengono che questo non sia del tutto vero. Questo numero non influisce in alcun modo sull'algoritmo di interpretazione del contenitore; può essere ignorato.

Campo riservato

INT32 (4 byte)

Sempre uguale a 0 (è sempre?)

Sommario Formato record documento

Attributi file Formato documento

Il documento degli attributi descrive il nome del file e le date in cui è stato creato/modificato.

Campo

Spiegazione

Orario di creazione del file

UINT64 (8 byte)

Orario di creazione del file, espresso in numero di intervalli di 100 microsecondi dall'inizio della nostra era (01/01/0001 00:00:00)

Orario di modifica del file

UINT64 (8 byte)

Allo stesso modo

Campo riservato

INT32 (4 byte)

Sempre 0. Forse si tratta di flag di attributo, qualcosa come di sola lettura, nascosto, ecc. Tuttavia, non ho riscontrato file in cui questo campo differisce da zero.

Nome del file

Stringa in formato UTF-16

Occupa l'intero corpo rimanente del documento (meno 2 date e un campo di riserva)

Principio di lettura del contenitore

  1. Assemblare un documento di indice da blocchi e leggerlo
  2. Attraversa tutte le voci nel documento del sommario e leggi gli attributi del documento (nomi) dei file contenitore
  3. Mappare ciascun nome ricevuto all'indirizzo del documento di contenuto
  4. L’output è la corrispondenza “Nome file” -> “Indirizzo contenuto”

Lettura di file

  1. In base al nome del file, ottieni l'indirizzo del documento di contenuto dal sommario
  2. Assemblare un documento di contenuto da blocchi
  3. Se questo è il contenitore root, decomprimi il documento di contenuto (è compresso)
  4. Pronto. Il risultato risultante sono i dati del file cercato.

Aggiornamento dal 25/02/2014

Finalmente

Questo articolo non è la verità ultima; probabilmente contiene anche degli errori. Tuttavia, se questo argomento ti interessa, spero che questo articolo ti aiuti a realizzare i tuoi progetti. Buona fortuna!