Took a different approach than most others - instead of taking the file into a string and then parsing, I just dumped it into a temp file, and then used the "Fixed Width File" option which takes care of the variable length of the rows by putting in nulls.
Then just had to do a bit of cleanup for the row overruns, and job done.