Ładowanie...

21 listopada 2012 877 wyświetleń

Struktura formatu JCD

Dzięki Nikola Bozovicowi możemy zapewnić prawie pełną strukturę plików w formacie plików JCD. Ten format pliku jest zapisywany w wersji FlashGet 1.73 build 128.

Powiązane rozszerzenia:

Dzięki Nikola Bozovic możemy dostarczyć Ci niemal pełną strukturę pliku formatu JCD. Ten format pliku jest zapisywany w wersji FlashGet 1.73 build 128.

Struktura formatu JCD

LEGENDA

UBYTE - bajt bez znaku (8 bitów)
UINT - int bez znaku (32 bity)
ArrayOf(TYPE) - tablica elementów TYPE
OleString - spakowany element łańcucha znaków o długości 1 bajt (8 bitów) jako N oraz N bajtów (znaków) następujących po nim
enum - bitfield (32 bity)
USHORT - short bez znaku (16 bitów)
CTime - data i czas spakowane jako mfc CTime (1/1/1970)

Struktura pliku

rozmiar w bajtach

typ danych

nazwa

komentarz

1

UBYTE

Podpis

 0x48

4

UINT

RecordsCount

łączna liczba rekordów w db

0+N

ArrayOf(RCATEGORY lub RFILE)

Records

tablica rekordów

 

 

Struktura RCATEGORY

rozmiar w bajtach

typ danych

nazwa

komentarz

4

UINT

type

definiuje typ rekordu (1, 5)

4

UINT

ID

unikalny identyfikator rekordu

4

UINT

_u01

* nieznane

4

UINT

_u02

* nieznane

4

UINT

_u03

* nieznane

4

UINT

_u04

* nieznane

4

UINT

_u05

* nieznane

1+N

OleString

Name

Nazwa kategorii

1+N

OleString

Path

Ścieżka folderu kategorii

 

Struktura RFILE

rozmiar w bajtach

typ danych

nazwa

komentarz

4

UINT

type

definiuje typ rekordu (2)

4

UINT

ID

unikalny identyfikator rekordu

4

UINT

_u03

* nieznane (6)

4

UINT

_u04

* nieznane (2)

4

UINT

IDDirCurrent

rejestry bieżącej kategorii

4

UINT

_u06

* nieznane (0)

4

UINT

_u07

* nieznane (79)

1+N

OleString

Url

adres URL pobierania pliku

4

enum

Flags

bity flag [patrz *1]

1+N

OleString

ServerUsername

nazwa użytkownika logowania na serwer

1+N

OleString

ServerPassword

hasło logowania na serwer

4

UINT

IDDirTarget

kategoria docelowa dla kompletnego pobrania

1+N

OleString

Filename

nazwa pliku do pobrania

4

UINT

NumOfCnn

liczba połączeń

1+N

OleString

Folder

folder do pobrania

1+N

OleString

Comment

komentarz

4

UINT

_u11

* nieznane (1 / 65537)

4

enum

State

1 - wstrzymane, 2 - rozpoczęte, 4 - ukończone, 8 - błąd

4

INT

FileSize

rozmiar pliku z serwera, -1 dla nieznanego rozmiaru pliku

1+N

OleString?

_s01

* nieznane (0) być może byte ?

4

CTime

FileDate

data pliku pobrana z serwera

4

CTime

CreateTime

czas utworzenia rekordu pliku

4

CTime

CompleteTime

data ukończenia pobierania, data i czas ostatniego zapisu

1+N

OleString

Referer

referer URL

4

UINT

TotalTime

całkowity czas w sekundach potrzebny na pobranie

2

USHORT

_us18

* nieznane (0)

4

UINT

AltUrlCount

liczba alternatywnych adresów URL

0+N

ArrayOf(ALTURL)

AltUrls

tablica alternatywnych adresów URL (może mieć rozmiar równy zero)

4

UINT

JetCount

liczba pobrań „jet”

0+N

ArrayOf(JETITEM)

JetItems

tablica elementów „jet” (może mieć rozmiar równy zero)

4

UINT

_u21

* nieznane (0)

 

Struktura ALTURL

rozmiar w bajtach

typ danych

nazwa

komentarz

1+N

OleString

Url

alternatywny adres URL

4

UINT

_u01

* nieznane (0)

 

Struktura JETITEM

rozmiar w bajtach

typ danych

nazwa

komentarz

4

UINT

start

początek adresu pliku zakończonego pobierania „jet”

4

UINT

end

koniec adresu pliku zakończonego pobierania „jet”

 

 

// Bit field [*1]
[Flags]
public enum JCDFileFlags : uint
{
bit1 = 1, /* incoplete download */
bit2 = 2, /* incoplete download */
LoginToServer = 4,
bit4 = 8,
bit5 = 0x10,
bit6 = 0x20,
bit7 = 0x40,
bit8 = 0x80,
bit9 = 0x100, /* incoplete download */
bit10 = 0x200, /* incoplete download */
bit11 = 0x400,
FtpDownloadSubDirs = 0x800,
CreateSubDirsLocally = 0x1000,
CreateCategory = 0x2000,
bit15 = 0x4000,
bit16 = 0x8000,
bit17 = 0x10000,
bit18 = 0x20000,
bit19 = 0x40000,
bit20 = 0x80000,
bit21 = 0x100000,
bit22 = 0x200000,
bit23 = 0x400000,
bit24 = 0x800000,
bit25 = 0x1000000,
bit26 = 0x2000000,
bit27 = 0x4000000,
bit28 = 0x8000000,
bit29 = 0x10000000,
bit30 = 0x20000000,
bit31 = 0x40000000,
bit32 = 0x80000000