Difference between revisions of "Talk:DBPF/Source Code"
Mjshannon3 (Talk | contribs) m |
|||
Line 37: | Line 37: | ||
Delphy, thanks for this code, and much more importantly to me, the reference to the original perl code! I'm writing some stuff in perl, so that's more useful to me at the moment.... [[User:mjshannon3|mjshannon3]] | Delphy, thanks for this code, and much more importantly to me, the reference to the original perl code! I'm writing some stuff in perl, so that's more useful to me at the moment.... [[User:mjshannon3|mjshannon3]] | ||
2007-01-05 21:53 EST | 2007-01-05 21:53 EST | ||
+ | |||
+ | : Where is the original perl code? [[User:Albmont|Albmont]] 16:05, 16 January 2007 (CST) |
Revision as of 00:05, 17 January 2007
Me again :-) I will ask something about this code.
When you read the Index, this sequence of operations is used:
$indexData[$i]['typeID'] = $this->revhex($this->strhex(fread($handle, 4))); $indexData[$i]['groupID'] = $this->revhex($this->strhex(fread($handle, 4))); $indexData[$i]['instanceID'] = $this->revhex($this->strhex(fread($handle, 4))); if ($this->indexMajorVersion == "7") && ($this->indexMinorVersion == "1")) { $indexData[$i]['instanceID2'] = $this->revhex($this->strhex(fread($handle, 4))); } $indexData[$i]['offset'] = $this->read_UL4($handle); $indexData[$i]['filesize'] = $this->read_UL4($handle); $indexData[$i]['compressed'] = false; $indexData[$i]['truesize'] = 0;
and then, when you read the DIR resource, almost exactly the same sequence is done:
$typeID = $this->revhex($this->strhex(fread($handle, 4))); $groupID = $this->revhex($this->strhex(fread($handle, 4))); $instanceID = $this->revhex($this->strhex(fread($handle, 4))); if (($this->indexMajorVersion == "7") && ($this->indexMinorVersion == "1")) { $instanceID2 = $this->revhex($this->strhex(fread($handle, 4))); } $filesize_nc = $this->read_UL4($handle);
and finally you check if the file is compressed by comparing the fields.
So, if I created a routine to read the whole sequence (except that the DIR does not read the offset), and then checked if the file is compressed using an overloaded "==" operator, would it be wrong? I think it might improve the readability of the code. Albmont 15:36, 1 January 2007 (EST)
- You could certainly create a function to grab those 4 things and return them in an array. It's duplicate code becuase, essentially, it's duplicate data - as we discussed on the DBPF page, it doesn't neccesarily make sense from a coders point of view. :) Delphy 16:13, 1 January 2007 (EST)
Delphy, thanks for this code, and much more importantly to me, the reference to the original perl code! I'm writing some stuff in perl, so that's more useful to me at the moment.... mjshannon3 2007-01-05 21:53 EST
- Where is the original perl code? Albmont 16:05, 16 January 2007 (CST)