SAP CAR

The following subsections show a graphical representation of the file format portions and how to generate them.

First we need to perform some setup to import the packet classes:

[1]:
from pysap.SAPCAR import *
from IPython.display import display

SAPCAR Archive version 2.00

We first create a temporary file and compress it inside an archive file:

[2]:
with open("some_file", "w") as fd:
    fd.write("Some string to compress")

f0 = SAPCARArchive("archive_file.car", mode="wb", version=SAPCAR_VERSION_200)
f0.add_file("some_file")

The file is comprised of the following main structures:

SAPCAR Archive Header

[3]:
f0._sapcar.canvas_dump()
[3]:
../_images/fileformats_SAPCAR_7_0.png

SAPCAR Entry Header

[4]:
f0._sapcar.files0[0].canvas_dump()
[4]:
../_images/fileformats_SAPCAR_9_0.png

SAPCAR Data Block

[5]:
f0._sapcar.files0[0].blocks[0].canvas_dump()
[5]:
../_images/fileformats_SAPCAR_11_0.png

SAPCAR Compressed Data

[6]:
f0._sapcar.files0[0].blocks[0].compressed.canvas_dump()
[6]:
../_images/fileformats_SAPCAR_13_0.png

SAPCAR Archive version 2.01

[7]:
f1 = SAPCARArchive("archive_file.car", mode="wb", version=SAPCAR_VERSION_201)
f1.add_file("some_file")

The file is comprised of the following main structures:

SAPCAR Archive Header

[8]:
f1._sapcar.canvas_dump()
[8]:
../_images/fileformats_SAPCAR_18_0.png

SAPCAR Entry Header

[9]:
f1._sapcar.files1[0].canvas_dump()
[9]:
../_images/fileformats_SAPCAR_20_0.png

SAPCAR Data Block

[10]:
f1._sapcar.files1[0].blocks[0].canvas_dump()
[10]:
../_images/fileformats_SAPCAR_22_0.png

SAPCAR Compressed data

[11]:
f1._sapcar.files1[0].blocks[0].compressed.canvas_dump()
[11]:
../_images/fileformats_SAPCAR_24_0.png
[12]:
from os import remove
remove("some_file")
remove("archive_file.car")