Zeno file format

From openZIM
Revision as of 21:06, 7 January 2009 by Manuel Schneider (talk | contribs) (New page: Nach dem Öffnen der Datei muss der Header eingelesen werden, er steht am Anfang der Datei. <pre> TZenoLibraryHeaderFlag = (zlfIsIndex); TZenoLibraryHeaderFlags = set of TZenoLibraryHe...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Nach dem Öffnen der Datei muss der Header eingelesen werden, er steht am Anfang der Datei.

 TZenoLibraryHeaderFlag = (zlfIsIndex);
 TZenoLibraryHeaderFlags = set of TZenoLibraryHeaderFlag;
 TZenoLibraryHeader = record
   rMagicNumber: integer;            // Erkennungsmarke, muss immer den Wert 1439867043 haben
   rVersion: integer;                // wp2006=2, wp2007=3, bei Formatänderungen wird hochgezählt
   rCount: integer;                  // Anzahl der Artikel
   rUnused1: integer;                // da Delphi anscheinend Int64 auf 8-Byte-Grenzen legt entsteht diese Lücke
   rIndexPos: Int64;                 // Position des Inhaltsverzeichnisses
   rIndexLen: integer;               // Länge des Inhaltsverzeichnisses
   rUnused2: integer;                // vormals rFlags 
   rIndexPtrPos: Int64;              // Position der Zeigerliste auf das Inhaltsverzeichnis
   rIndexPtrLen: integer;            // Länge der Zeigerliste auf das Inhaltsverzeichnis, also 4*rCount
   rTreeDataPos: Int64;              // bei wp nicht benutzt
   rTreeDataLen: integer;            // bei wp nicht benutzt
   rIndexTotalArticleCount: integer; // nur für die Indexdatei
   rIsIndexCompressed: boolean;      // in der ausgelieferten Version immer true bei der Indexdatei
   rNamespaceCountPos: int64;        // Fileposition der Tabelle, die Infos über die Namespaces hat, siehe unten
   rNamespaceCountLen: integer;      // Länge dieser Tabelle, z.Zt. fix auf 368 Bytes (8 Bytes * 46 Namespaces)
   rUnused: array [0..57] of integer;// mehr Luft als hier vorher war
 end;