Entwicklung eines Archivformats



  • Hi.
    Ich möchte ein Archivformat zu verwaltung von Resourcen meiner Programme entwickeln. Das ganze soll platformunabhängig sein, daher in C++ und nicht über Win32-Resources etc.
    Folgende Idee:

    //Header
    FILEVERSION INT sizeof(INT)
    FILESTATUS  INT sizeof(INT) // 1 Compressed, 0 Uncompressed
    NUMGROUPS   INT sizeof(INT) // Anzahl der Resourcegroups
    
    GROUP N
    {
        NUMFILES INT sizeof(INT)
    
        FOLDER N
        {
          FOLDERID INT sizeof(INT)
    
          FILEDESCRIPTION N
          {
             NAME STRING (sizeof(char)*255)
             FIRSTBYTE INT sizeof(INT)
             SIZE INT sizeof(INT)
             CRC32 INT sizeof(INT)
          }// Repeats
    
        }
    
    }// Repeats
    DATA 
    {
       BYTE sizeof(FILEDESCRIPTION::SIZE)
    } // Repeats
    

    Die Daten sind soweit dynamisch, es können unendlich gruppen angelegt werden, die aber nicht doppelt vergeben werden dürfen.
    Die Ordner sind statisch und werden über eine ID identifiziert:
    0 - FONTS
    1 - BITMAPS
    2 - CURSORS
    3 - SCRIPTS
    etc.
    Dateien innerhalb der Ordner soweit beliebig viele.
    Was haltet Ihr davon soweit? Hab ich was übersehen?
    Was ist bei so einem Archiv noch zu beachten?

    Und ich suche noch 2 Methoden die mir folgendes erlauben:

    - Eine Methode um den CRC32 zu berechnen 😃
    - Eine gute komprimierungsmethode, die mir auch Verschlüsselung erlaubt
    - oder alternativ eben eine verschlüsselungsmethode zusätzlich zur Komprimierung

    Danke für eure Hilfe. Bin halt leider noch nen Newb.


Anmelden zum Antworten