The structure of components in Colossal Files is discussed in the documentation in some detail, such that reconstruction of parts of a file that is damaged might be possible. What I am trying to understand is the format of the TimeStamp. I do not seem to be able to duplication the TimeStamp to match that returned by the []cfrdci function. So some questions about Colossal Files.
1) what is the format of the TimeStamp in components as stored on in the file?
2) are there functions to read the transaction number? It can be read from the file, once the pointer to a component if found, but no []cf... type function appears to return this number.
Here is a snipet of code that reads a component given a pointer to the start byte of the component. My TimeStamp does not work. The rest seems to be OK.
’ larg MEntry rarg;Œio;component;comp_size;comp_num;data_size;timestamp;transact;md5;integrity;comp
[1] © rarg = pointer to start of component in Colossal File
[2] © if larg = single negative number, == native tie number
[3] © if larg = vector, larg is the file data
[4] Œio„0
[5] :if (1=½,larg)
[6] :andif larg<0
[7] © do file operations
[8] :if ~0 221 238 255AV Œnread larg,82,4,rarg ª 'Not a component' ª …0 ª :end
[9] comp_size„Œnread larg,323,1,rarg+4
[10] comp„Œnread larg,82,comp_size,rarg
[11] :else
[12] © do vector operations
[13] :if ~0 221 238 255 AV larg[rarg+¼4] ª 'Not a component' ª …0 ª :end
[14] comp_size„323 Œdr larg[rarg+4+¼4]
[15] comp„larg[rarg+¼comp_size] © component
[16] :end
[17]
[18] data_size„323 Œdr comp[8+¼4]
[19] comp_num„323 Œdr comp[12+¼4]
[20] © timestamp„645 ts„Œdr comp[16+¼8]
[21] timestamp„256ƒ²AV ts„comp[16+¼8]
[22] transact„256ƒ²AV comp[24+¼8]
[23] md5„AV comp[32+¼16]
[24] integrity„md5AV 82 Œdr 'md5' Œdr data„comp[48+¼data_size]
[25]
[26] 'comp_size' comp_size
[27] 'data_size' data_size
[28] 'comp_num' comp_num
[29] 'timestamp' timestamp
[30] 'transact' transact
[31] 'md5' md5
[32] 'integrity' integrity
’