Contact Extraction from defunct Exchange priv1.edb database


I have a 700 MB priv1.edb exchange database which is corrupt, however I have used various tools such as bintext, and hex editors and such and I CAN see the pieces of exchange information plain as day.  The info is even in order memory wise!  

I notice a unique 7 digit number prior to the individual sections that I would like to extract.

My need is to have a perl, or some other method, script to find that 7 digit number and then extract certain fields after that.  I would like to send these extractions to a separate file.  Delimited text file would be fine, and then I will import them into excel or whatever.

Can be done???


Who is Participating?

Improve company productivity with a Business Account.Sign Up

ozoConnect With a Mentor Commented:
while( <> ){
    print "$_\n";
jmcnearAuthor Commented:

I have activestate perl installed on my winxp pro box

So the beginning the fields are identified by a 7 digit number, how are the ends of the field identified?
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Could you please post a sample line with all the fields.
jmcnearAuthor Commented:
3124745  (binary crap)  John Q. Public 123 Main Street Acity Astate (binary crap) 3124745  (binary crap)  Person 2 info .............          (binary crap) 3124745 (binary crap) person 3 .......... (bc) .....etc...

I would like to find the number 3124745, then skip over the binary crap, extract info, and then find next number and repeat.

If I have to live with the bc that comes between the user info and the following #, that's fine, but I would like to be able to skip the bc that comes between the # and the user info.


Is there any way to determine where the binary crap stops and where the user info starts?
jmcnearAuthor Commented:

I would settle for something like (x non binary crap bytes in a row)

where x= maybe 10 or so, or 5, or whatever. (Basically to indicate that I am within usable ascii information.  I dont expect this to be totally precise science.  I will modify code accordingly to see what fits.  My initial goal is to extract "most" (as much as possible) of the human readable text from this 700MB file, and save it into a separate much smaller file.  I am sure I will then run extractions against that file to fine tune, etc...

So, I suppose something like /a-bA-B0-9/ and 'space'/'tab' for x sequential bytes would be a starting place for the regex to isolate the readable text?

This initial code can be dirty(filthy even :) ), just to get a smaller working set which contains all my ascii that I want to extract.  I will then look at that file's structure and see what I should do from there.



Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.