Building Random People

By | 2017-12-21

Yes, building people. This program, meant to demonstrate the use of a few different methods, builds random person data (Address, phone, etc).

I didn’t build this for someone to build false identities for nefarious purposes, although it could probably be used for that. Nay, I built this to demonstrate the use of a few different concepts in Visual Basic 6 (VB6):

  • Reading large text files from disk
  • Storing data in arrays
  • Choosing random records from an array
  • String concatenation
  • Parsing multi-field array elements

Some of these items might seem like basic knowledge to some folks, but remember, there is a starting point for everyone, and there are people out there that might be trying to learn this stuff.

Details, details

The program does one thing, and one thing only: generate fake people. It simply creates four pieces of information:

  • Name
  • Gender
  • Phone Number
  • Address
PersonBuilder Screenshot

PersonBuilder has been built in such a way that the generated data “matches”. This means it won’t assign a female name to a male, or vice versa. Also, the area code matches the address information.

To build this data, I’ve used six files, which I have included in the archive. The file information is shown below.

FilenameRecord Count
PB-Surnames.txt88,798
PB-Male.txt1,219
PB-Female.txt4,275
PB-Locations.txt42,009
PB-Streets.txt96
PB-StreetTypes.txt6
Total Records: 136,403

One interesting thing to note is the structure of the PB-Locations file: The file is tab-delimited. This allows us to store related data on a single line of the file, given that we can extract the data from the line. While there may only be 42,009 records in the file, there are 336,072 pieces of extractable data. Cool, eh? Further, it allows for easy import into a database or spreadsheet, for use in other applications.

While perusing this code, you might notice that I’ve used the currency variable type on a few of the arrays and counters. I could have used the Long variable type, but I wanted to be able to go beyond the limitations of the type.

Long integers in VB6 are limited to 2,147,483,468, both to the right and left of the zero. The currency data type increases that by a factor of 10,000, to 922,337,000,000,000 items. I don’t think I’ll ever need 922 trillion names, but you never know. 😉 The tradeoff is that the currency datatype uses 8 bytes of memory, compared to 4 bytes used by a long integer data type.

Anyway, I hope someone finds this useful. As always, hit me up in comments below, or in the forums, if you have any questions comments about this code.

Attachments

FileUploadedSize
389-20171221-072849-PersonBuilder.zip12/21/2017 7:28:49 AM1030995
Author: dwirch

Derek Wirch is a seasoned IT professional with an impressive career dating back to 1986. He brings a wealth of knowledge and hands-on experience that is invaluable to those embarking on their journey in the tech industry.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.