On 5 June 2012 21:39, Felipe Castro <fef...@gmail.com> wrote: > Hello, I just want to share this with you: > http://www.iwriteiam.nl/Ha_HTCABFF.html > Historical interest here: this guy worked on R12 and R13 formats of DWG. > > I found this searching in WotSit: > http://www.wotsit.org/list.asp?fc=19 > > Cheers, > Felipe Castro. >
Hi, thanks Felipe! If it helps anybody I have a short app in Pascal which generates a dump from the binary file as csv file. procedure TForm1.Button1Click(Sender: TObject); var Ifile: File; TeFile: TextFile; byteArray : array[0..1] of byte; savestring, s: string; P: PChar; cnt: integer; begin OpenDialog1.Title:='Select the file to dump'; if OpenDialog1.Execute then begin AssignFile(Ifile,OpenDialog1.FileName); P := StrRScan(PChar(OpenDialog1.FileName), '.'); P[0]:=#0; SaveDialog1.FileName:=OpenDialog1.FileName; if SaveDialog1.Execute then begin Reset(Ifile,1); AssignFile(TeFile,SaveDialog1.Filename); Rewrite(TeFile); cnt:=1; while not EOF(Ifile)do begin BlockRead(Ifile,byteArray,1); if((byteArray[0]<128)and(byteArray[0]>31))then s:=chr(byteArray[0]) else s:=''; if byteArray[0]=34 then s:='\"'; savestring:=IntToHex(cnt,0)+','+IntToHex(byteArray[0],2)+','+IntToStr(byteArray[0])+','+s; Inc(cnt); WriteLn(TeFile,savestring); end; CloseFile(Ifile); CloseFile(TeFile); end; end; end; It's not elegant coding and very amateurism, but what it does is generate a csv file with each byte given a row with the following fields: 1. the offset of the byte in hex. 2. the value of the byte in hex 3. the value of the byte in decimal 4 the ascii of the byte. Then I open the csv in a spreadsheet and add notes, track pointers and colour the cells. For example, a 16 byte sentinel will be coloured in magenta and a 4 byte raw integer might be coloured cyan. As I say, the above code is in Pascal (compiled with Lazarus ( http://www.lazarus.freepascal.org/ ) but you could write a small script in Perl, Python or C that would do the same thing. Please forgive me for posting this: I'm sure the majority of libredwg coders already do something similar, if not a lot more advanced, however if this helps anyone in their endeavours I'd be very pleased.