Question

I am trying to extract data from a legacy point-of-sale database that runs on a DOS system.

 56 KB  DATABASE.DA0 - binary data
232 KB  DATABASE.DA1 - binary data
192 KB  DATABASE.DA2 - binary data
396 KB  DATABASE.DA3 - binary data
224 KB  DATABASE.DA4 - binary data
316 KB  DATABASE.DA5 - binary data
 60 KB  DATABASE.DAS - magic number "MPROS" - some kind of data format specification
2.8 MB  DATABASE.DAT - magic number "MPROD1" - some kind of flatfile
 12 KB  DATABASE.DPL - magic number "MPRO2" - some kind of UI script

A row of the data file has field sizes specified in binary, like this:

\03Mrs\03XXX\03XXX\0cXXXX Street

The specification file has sections that look like this:

Export $001=CLIENT NUMBER ,TYPE=C,WI=13,CASE=U,SERIAL
$002=DATE ,TYPE=D(dd-mm-yy)
$003=TITLE ,TYPE=C,wi=7
$004=FIRST NAME ,wi=12
$005=SURNAME ,wi=30
$006=STREET ,wi=30
$007=SUBURB/TOWN ,wi=25
$008=POSTCODE ,wi=8
$009=TELEPHONE ,wi=15
$010=PURCHASE ,TYPE=N,pr=2,ju=r,wi=9
$011=2ND LAST CONTACT ,TYPE=D(dd-mm-yy)
$012=3RD LAST CONTACT ,TYPE=D(dd-mm-yy)
$013=4TH LAST CONTACT ,TYPE=D(dd-mm-yy)
$014=MAILING LIST (Y/N) ,wi=1

...

\PROG
    dc init,nameline,lastline,streetline,figs,wk,line,nacase,sequence
    dc nad
    getpar 'nacase',nacase
    leftstr first,1,init
    ifa contact
      nameline=title+' '+init+' '+surname
    else
      nameline=surname
    endif  
    unline nameline
    streetline=property+' '+street_no+' '+street
    unline streetline
    if nacase bw 'l'
       setcase nameline,w
       setcase streetline,w
    endif
    lastline=suburb
;;        unline lastline
    if nacase bw 'l'
       setcase lastline,w
    endif
    gosub towJnpostcode

    nad=nameline
    ifp contact
      nad=contact+CR+nad
    endif
    nad=nad+CR+streetline+CR+lastline


    ifnotf then notf
    if $display='a'
       wk='Records: '+$trc+' '
    endif
    if $display='s'
       wk='Records: '+$src+' from '+$trc+' '
    endif
    a=51-len(wk)
    fillstr line,'ƒ',a
    figs=wk+line

    if $index=1
      sequence='customer ref'
    endif
    if $index=2
      sequence='postcode

Does anybody know what type of system this is and whether there are any off-the-shelf libraries or converters that could read it?

Was it helpful?

Solution

I think what you have there is software developed in Masterfile Pro. I've figured that out from similar syntax found on Process Census in MPRO database

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top