[2005] Formaat .wrd files


#1

WRD Files

Bevatten records van 42 bytes

volgnr 4 bytes oplopend maar niet continu
unknown 2 bytes meestal 0
string 36 bytes zero terminated

[code]
file recordsize string #records min offs max offs

cdc.wrd 42 bytes 36 bytes 9042 00000000 00003a8b cities
cdt.wrd 42 bytes 36 bytes 52590 00000000 00027baa trefwoorden
cdw.wrd 27 bytes 21 bytes 539930 0a5ba550 20a56912 white
cdp.wrd 37 bytes 31 bytes 272338 012c0978 04a78eaa pink[/code]

Bij cdc.wrd valt op: 0x3a8b * 4 = 0xea2c = 59948
Dat is de exacte lengte van cdc.doc.
Voor de andere files gaat dit niet op.

[code]#include <stdio.h>

int main (int argc, char **argv)
{
FILE *fp;
char buf[80];
int len;
unsigned long addr;
unsigned short num;

    len = atoi (argv[2]);
    fp = fopen (argv[1], "r");
    while (!feof (fp)) {
            fread (buf, len, 1, fp);
            if (feof(fp))
                    break;
            addr=*((unsigned long*)buf);
            num=*((unsigned short*)buf+2);
            printf ("%08x %04x %s\n", addr, num, buf+6);
    }
    return 0;

}[/code]

Starten met wrdfile [file] [reclen]


./wrdfile data/cdc.wrd 42

00000000 0000 AA
00000001 0000 AADORP
00000002 0000 AAGTDORP
00000003 0000 AAGTEKERKE
00000004 0000 AALBEEK
00000005 0000 AALBURG
00000008 0000 AALDEN
00000009 0000 AALSMEER
0000000a 0000 AALSMEERDERBRUG
0000000b 0000 AALST
0000000d 0000 AALTEN
0000000f 0000 AALZUM
00000010 0000 AAN
00000026 0000 AAR
00000027 0000 AARD
00000028 0000 AARDENBURG
00000029 0000 AARLANDERVEEN
0000002a 0000 AARLE
0000002b 0000 AARLE-RIXTEL
0000002c 0000 AARTSWOUD
0000002d 0000 ABBEGA
0000002e 0000 ABBEKERK
0000002f 0000 ABBENBROEK
00000030 0000 ABBENES
00000031 0000 ABCOUDE
00000032 0000 ABSDALE
00000033 0000 ABSHOVEN

#2

Hoi RGJ,

Even kijken naar cdp.dbb. De blok getal “78DA” komt op volgende filepointers voor:

0x0000
0x2F77
0x3F44
.
.

De pointers (0x2F77, 0x3F44) komen terug in cdp.wrd, alleen staan ze niet achterelkaar. Mogelijk in een record structuur.

De vriendelijke groet Jan Marco


#3

Dat is op zich wel logisch in een bestand van die omvang… ik kan ze echter niet gestructureerd terugvinden.