Importing password data into SplashID
Way back when, so long ago I can't remember, I bought a product called Passwords Plus from DataViz. The product is an application for storing passwords, PINs, and the like, and supported Palm devices as well as providing a Windows desktop application. At the time I had a Sony Clié NR70V, which I carried everywhere with me, and so the app made sense.
Since then, of course, Palm OS devices have fallen by the wayside, and indeed the latest Palm Desktop app doesn't even support Windows Vista 64-bit which means you can no longer synchronize. So although I no longer use my Clié, I've still kept on using the Windows app, despite it getting somewhat long in the tooth. But, with 300-odd items in the database, there was no way I was going to give it up without good reason.
That reason came 10 days ago, a new iPhone 3GS. Now, I had another device that I carried around that called out for a password app (for some reason the Windows Mobile phone I had before didn't engender such feelings). So I looked online for recommendations (iPhone app, with Windows desktop app, plus sync between them, and it had better have some kind of import). After a little research, I found one: SplashID from SplashData.
The app promised import of CSV files and Passwords Plus could provide them. Pretty obviously, though, those CSV file formats would be different, but I'm nothing if not a programmer.
The CSV route proved abortive (the import CSV feature of SplashID was pretty limited, given the amount of configuration I'd done on the Passwords Plus data), but there was an alternative that proved better: SplashID allowed you to import data from "vid" files, usually encrypted. And if they weren't? They were a more complete CSV file format that could define all of the data that SplashID wanted. So I created an unencrypted "vid" file from my Passwords Plus data, and voilà!
The rest of this article is merely a definition of the data format of an unencrypted vid file. No need to read it if you're not interested, but it'll serve as an information repository for those who care (for instance, me, in a couple of years' time).
The unencrypted vid file is a text file, with most records comprising comma-separated values. There are four sections. First is the file header record: "SplashID vID File -v3.0". The next record consists of a single "F". I think this is something to do with the password to the file, since if I leave it out, I get some bizarre behavior (SplashID will ask for a password if this record is missing). Then there is a set of template or type records, followed by a set of data records. These two kinds of records can be interleaved, so long as the type record appears before a data record that uses it. Both type and data records are CSV records, with the first field being "T" for a type record, and "F" for a data record.
The fields for a type record are:
| record identifier | "T" |
| image number | image number from set of type icons in app |
| type name | Informative name/description for the type |
| field 1 name | Usually "Name" or "Description" |
| field 2 name | |
| ... | |
| field 9 name | |
| date modified field name | "Date Mod" by default |
| masked fields | bit field denoting masked fields (field 1 uses bit 1, field 2, bit 2, etc) |
The fields for a data record are:
| record identifier | "F" |
| image number | image number from set of type icons in app |
| item name/description | (this is field 1) |
| field 2 | |
| ... | |
| field 9 | |
| modified date | Seems to use "Month dd, yyyy" |
| masked fields | bit field denoting masked fields (field 1 uses bit 1, field 2, bit 2, etc) |
| custom field 1 name | Default: same as type's definition |
| custom field 2 name | Default: same as type's definition |
| ... | |
| custom field 9 name | Default: same as type's definition |
| custom date modified field name | Default: same as type's definition |
| category | "Personal", "Business", "Unfiled", etc |
| notes |
The rules for CSV files apply here. If a value has an embedded comma, the whole value must be surrounded by double quotes. If the value has a double quote, the whole value is again surrounded by double quotes, and the embedded double quotes are escaped with another double quote mark. So if a value was "Mon Repos", Denver, it would be represented in the vid file as """Mon Repos"", Denver".
To create a vid file from a CSV export from Passwords Plus merely required rearranging the "columns" in the CSV file and calculating the hidden fields bit mask. (Despite my prowess as a programmer, I just used Excel this time.) To make it easy for myself later I created a type called "Imported" (and chose some icon for it). I then imported the vid file into an empty SplashID database, and then synced it with my iPhone.
(There were about 6 data records I had to futz with since Passwords Plus allows for 10 fields per record, whereas SplashID only has 8 — there are nominally 10, but 2 are taken up with the Name/Description and the modified date.)
Now playing:
Orzabal, Roland - Hypnoculture
(from Tomcats Screaming Outside)









Despite

So I looked online for other solutions. After some browsing I came across the

Had one of the new Audi A4s as a rental. Nice car, I must say, even pretending I wasn't a Audi fan anyway. Found out after we'd got to the hotel in the second half of the week that the reverse had a sensor for detecting how close the rear of the car was to any obstruction. It beeped quicker the closer you got, until the point where it was a continuous tone indicating that you were about to hit something. Magic. Absolutely and utterly handy.

